在xcode 6.4 中使用swift和object-c混合编程,同时通过cocoapods进行管理的一些问题和解决办法
2016-12-16 09:07
525 查看
使用cocoapods 中的use_frameworks! 产生.h文件无法发现的问题
因为使用到SwiftyJSON这个第三方库来进行json的解析,并且版本是2.2.1。需要在PodFile里面使用use_frameworks!才能安装
但是这样会产生一个在原来的 iLiveTraffic-Bridging-Header.h 桥接文件
无法编译,报告PPRevealSideViewController.h没有发现的错误。
如果在PodFile里面去掉use_frameworks!和pod ‘SwiftyJSON’, ‘~> 2.2.1’则项目可以正常运行。
说明这个问题是由于 use_frameworks!引起的。
经过一天的google。发现了这个博文
http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html
大致意思是:
如果在cocoapods 里面不使用 use_frameworks!,则是通过static libraries 这个方式来管理pod的代码。这样就需要在app-Bridging-Header.h 文件里面去import相应的.h 文件。而如果使用了use_frameworks!,则cocoapods 使用了frameworks 来取代static libraries 方式。
这样的话,我们就可以通过下面3个步骤去解决这个问题。
在PodFile中使用 use_frameworks!,让cocoapods来使用framework的方式
pod update 成功好以后,打开workspace文件
在Project > General > Linked Framework and Libraries >
增加 SwiftyJSON 的framework,如下图:
- 修改iLiveTraffic-Bridging-Header.h文件,去掉已经frame化的桥接
修改所有需要使用这个frame功能的swift文件,都需要
原有的调用可能会改变
原有的:
因为使用到SwiftyJSON这个第三方库来进行json的解析,并且版本是2.2.1。需要在PodFile里面使用use_frameworks!才能安装
platform :ios, '8.0' use_frameworks! pod 'ArcGIS-Runtime-SDK-iOS' , '10.2.4' #用于主界面右下角的about按钮被点击后,滑动显示管用窗口 pod 'PPRevealSideViewController', '~> 1.2.1' pod 'SwiftyJSON', '~> 2.2.1'
但是这样会产生一个在原来的 iLiveTraffic-Bridging-Header.h 桥接文件
// 建立调用PPRevealSideViewController工具包的桥接 - begin #import "PPRevealSideViewController.h" // 建立调用PPRevealSideViewController工具包的桥接 - end // 建立调用 AFNetWorking 工具包的桥接 -begin #import "AFNetWorking.h" // 建立调用 AFNetWorking 工具包的桥接 -end
无法编译,报告PPRevealSideViewController.h没有发现的错误。
如果在PodFile里面去掉use_frameworks!和pod ‘SwiftyJSON’, ‘~> 2.2.1’则项目可以正常运行。
说明这个问题是由于 use_frameworks!引起的。
经过一天的google。发现了这个博文
http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html
大致意思是:
如果在cocoapods 里面不使用 use_frameworks!,则是通过static libraries 这个方式来管理pod的代码。这样就需要在app-Bridging-Header.h 文件里面去import相应的.h 文件。而如果使用了use_frameworks!,则cocoapods 使用了frameworks 来取代static libraries 方式。
这样的话,我们就可以通过下面3个步骤去解决这个问题。
在PodFile中使用 use_frameworks!,让cocoapods来使用framework的方式
pod update 成功好以后,打开workspace文件
在Project > General > Linked Framework and Libraries >
增加 SwiftyJSON 的framework,如下图:
- 修改iLiveTraffic-Bridging-Header.h文件,去掉已经frame化的桥接
#ifndef iLiveTraffic_Bridging_Header_h #define iLiveTraffic_Bridging_Header_h // 建立调用讯飞工具包的桥接 - begin #import "iflyMSC/IFlySpeechRecognizerDelegate.h" #import "iflyMSC/IFlySpeechRecognizer.h" #import "iflyMSC/IFlyRecognizerViewDelegate.h" #import "iflyMSC/IFlyRecognizerView.h" #import "iflyMSC/IFlyContact.h" #import "iflyMSC/IFlyUserWords.h" #import "iflyMSC/IFlyDataUploader.h" #import "iflyMSC/IFlyDataDownloader.h" #import "iflyMSC/IFlySpeechSynthesizerDelegate.h" #import "iflyMSC/IFlySpeechSynthesizer.h" #import "iflyMSC/IFlySpeechUtility.h" #import "iflyMSC/IFlySpeechConstant.h" #import "iflyMSC/IFlySpeechError.h" #import "iflyMSC/IFlySpeechUnderstander.h" #import "iflyMSC/IFlyTextUnderstander.h" #import "iflyMSC/IFlySetting.h" // 建立调用讯飞工具包的桥接 - end // 建立调用PPRevealSideViewController工具包的桥接 - begin //#import "PPRevealSideViewController.h" //已经通过cocoapods的use_frameworks!来进行管理,不需要建立桥接了 // 建立调用PPRevealSideViewController工具包的桥接 - end // 建立调用 AFNetWorking 工具包的桥接 -begin //#import "AFNetWorking.h" //已经通过cocoapods的use_frameworks!来进行管理,不需要建立桥接了 // 建立调用 AFNetWorking 工具包的桥接 -end #endif
修改所有需要使用这个frame功能的swift文件,都需要
import PPRevealSideViewController
import AFNetworking
原有的调用可能会改变
原有的:
var manager:AFHTTPRequestOperationManager = Tools.getAFHTTPRequestOperationManager(
- 现在的
var manager:AFNetworking.AFHTTPRequestOperationManager = Tools.getAFHTTPRequestOperationManager()
相关文章推荐
- 在xcode 6.4 中使用swift和object-c混合编程,同时通过cocoapods进行管理的一些问题和解决办法
- 在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- Android上使用NDK做3D特效时碰到的一些问题及解决办法
- 在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- Mysql联合查询UNION和Order by同时使用报错问题的解决办法
- centos6.4 下 virt-manager 使用 nfs存储出现的无权限访问问题解决办法
- 工程中使用json-lib生成JSONObject产生一些异常的解决办法
- 使用xshell登录中文版CentOS时,在xshell下显示中文乱码,通过如下办法可以有效的解决乱码问题
- windows使用libvlc进行网络串流遇到的一些问题及解决方法
- windows下使用git管理代码,其中出现的问题的解决办法
- 在使用putty工具进行远程登录时也许会遇到一些问题,下面列出了一些问题有利于帮助大家解决:
- 使用Linq 更新数据库时遇到的一些问题及解决办法
- python2.6使用mysql包出现的一些问题以及解决办法
- 使用windows服务和MSMQ和进行日志管理(解决高并发问题)
- 使用Postgresql遇到的一些问题和解决办法
- [记录]在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- Asp.net MVC 3 Razor 视图引擎 中使用@输出的内容都会被自动进行HTML编码 问题的解决办法
- AS3中通过单击不同按钮进行交换元件出现问题解决办法
- 当前知识管理系统的焦点问题以及我的一些解决办法
- 使用eclipse进行Android编程发生崩溃的一个问题及解决办法