Swift Podfile中的 use_frameworks!
use_frameworks!
A、用cocoapods 导入swift 框架 到 swift项目和OC项目都必须要 use_frameworks!B、使用 dynamic frameworks,必须要在Podfile文件中添加 use_frameworks!
(1)如果在Podfile文件里不使用 use_frameworks! 则是会生成相应的 .a文件(静态链接库),通过 static libraries 这个方式来管理pod的代码。
(2)Linked:libPods-xxx.a包含了其它用pod导入的第三方框架的.a文件。
(3)如果使用了use_frameworks! 则cocoapods 会生成相应的 .frameworks文件(动态链接库:实际内容为 Header + 动态链接库 + 资源文件),使用 dynamic frameworks 来取代 static libraries 方式。
(4)Linked:Pods_xxx.framework包含了其它用pod导入的第三方框架的.framework文件。
use_frameworks! -> dynamic frameworks 方式 -> .framework#use_frameworks! -> static libraries 方式 -> .a
关于Library 和 Framework 可以参考:
http://blog.lanvige.com/2015/...
(1)swift项目cocoapods 默认 use_frameworks!
(2)OC项目cocoapods 默认 #use_frameworks!
用cocoapods导入OC框架到swift项目:
(1)#use_frameworks! 必须创建头文件,在头文件里面 #import "AFNetworking.h"
(2)use_frameworks! 如果有头文件,在头文件里面 #import "AFNetworking/AFNetworking.h",其它swift文件中用到不需要再import;如果没有头文件,则在每个需要用到的swift文件里 import AFNetworking。
用cocoapods导入swift框架到swift项目:
(1)必须use_frameworks!
(2)不需要头文件,在需要用到框架的swift文件里 import Alamofire
用cocoapods导入OC框架到OC项目:
(1)#use_frameworks! 在需要用到的文件里 #import "AFNetworking.h";也可以通过pch文件,用法类似swift中的头文件。
(2)use_frameworks! 与(1)类似,用法上没有区别。
用cocoapods导入swift框架到OC项目:不考虑
总结:
(1)用swift项目考虑到会使用 OC 和 swift 两种第三方框架,所以Podfile中使用swift项目默认的 use_frameworks! 更为妥当,并且frameworks动态链接库具有一定的优势。
(2)可以建立一个Bridge头文件,用来import那些OC框架的.h文件:#import "xxx/xxx.h"。或者不建头文件,像swift框架一样,直接在需要用到的swift文件中import。
Swift Podfile中的 use_frameworks!的更多相关文章
- oc和swift混编 使用use_frameworks!后编译出错
Swift项目中同时使用OC的库和Swift的库时,用CocoaPods导入时添加use_frameworks! 如果在cocoapods 里面不使用use_frameworks!,则是通过stati ...
- swift动态库与use_frameworks
使用Dynamic 的优势: 模块化,相对于Static Library,Framework可以将模块中的函数代码外的资源文件打包在一起. 共享可执行文件 iOS 有沙箱机制,不能跨App间共享共态库 ...
- use_frameworks!和#use_frameworks!的区别、解决Swift项目中use_frameworks!冲突的问题
use_frameworks!和#use_frameworks!的区别 转自:https://www.jianshu.com/p/0ae58a477459 1. 用cocoapods 导入swift ...
- 在Swift项目中使用cocoaPods导入第三方OC库
首先保证你的项目是基于cocoaPods的,并且是通过XX.xcworkspace打开的.cocoaPods安装教程(Xcode6以上) 下面就第三方库MBProgressHUD来讲解如何在Swift ...
- Swift 3 中的访问控制 open public internal fileprivate private
Swift 3必看:新的访问控制fileprivate和open http://www.jianshu.com/p/604305a61e57 浅谈 Swift 3 中的访问控制 https://mai ...
- swift项目中使用OC/C的方法
假如有个OC类OCViewController : UIViewController类里有两个方法 //swift调用oc或c的混编是比较常用的,反过来的调用很少.这里只写了swift调用oc和c的方 ...
- Swift编程语言中的方法引用
由于Apple官方的<The Swift Programming Guide>对Swift编程语言中的方法引用介绍得不多,所以这里将更深入.详细地介绍Swift中的方法引用. Swift与 ...
- Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数
Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4 为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1 ...
- Swift语言中如何使用JSON数据教程
这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial Swift语言中如何使用JSO ...
随机推荐
- 2018.10.20 loj#2593. 「NOIP2010」乌龟棋(多维dp)
传送门 f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示用iii张111,jjj张222,kkk张333,lll张444能凑出的最大贡献. 然后从f[i−1][j][ ...
- 2018.09.30 bzoj4025: 二分图(线段树分治+并查集)
传送门 线段树分治好题. 这道题实际上有很多不同的做法: cdq分治. lct. - 而我学习了dzyo的线段树分治+并查集写法. 所谓线段树分治就是先把操作分成lognlognlogn个连续不相交的 ...
- 第四章 代词(Les pronoms )
★人称代词 .主语人称代词 第一人称和第二人称属纯人称代词,只能代人不能代物;第三人称可代人,亦可代物.如: La Terre est ronde. Elle tourne autour du Sol ...
- 在“开始”菜单中的“运行”一栏输入特定命令打开windows程序
winver 检查Windows版本 wmimgmt.msc 打开Windows管理体系结构(wmi) wupdmgr Windows更新程序 wscript Windows脚本宿主设置 ...
- 简单的cxf-rs
整体结构 │ pom.xml │ └─src ├─main │ ├─java │ │ └─cn │ │ └─zno │ │ HelloWorld.java │ │ InputBean.java │ │ ...
- 用Socket开发的一枚小型实时通信App
Socket 英文原意是插座. 在网络世界里, 当一台主机温柔而体贴的同时提供多个服务时, 每个服务被绑定在一个端口上, 而每个端口就好像一个小插座. 用户们连接对应的插座去获取相应的服务. 在Nod ...
- 安装Tomcat时 ,设置JAVA_HOME和JRE_HOME
http://blog.csdn.net/xw370457549/article/details/21638827 安装tomcat后,运行startup.bat提示JAVA_HOME.JRE_HOM ...
- 如何实现让你的网站支持Google Roboto Font
最近在写一个移动端的web项目,designer设计的页面效果图就是使用Google Roboto Font.The Roboto Font 是Google为Android 4.0 Ice-Cream ...
- colorbox在android上由于高度太高无法scroll问题
首先看问题截图: 我们可以看到弹出的colorbox页面的高度已经到了下面,你根本看不到"mistake cross"<=>"X". 我测试了iph ...
- Android-项目所有文件报红色j,状态栏无法Run 'app'
项目所有文件报红色j,不可用状态 状态栏如下: 无法 Run 'app' 无法 Debug 'app' ........... 以下操作按钮灰色的,无法点击: 解决方案: 只需要:Sync Proje ...