我知道cocoapod正在简化手动添加库的工作,或让开发人员专注于他的实际源代码.
但我的问题是,如果我只需要某些项目中的某些源文件,那么通过安装相同的cocoapod可以添加整个库吗?就像我只需要Reachability类文件那样,为什么我要整体AFNetworking
是不是会造成代码冗余或增加我的iPA大小或其他性能问题?
小智 10
通常,在Objective-C中向项目添加静态库会将所有OBJECT FILES拉入生成的二进制文件,因为可可pod安装会将-ObjC标志添加到链接器设置中,并且如链接器手册中所述:
Run Code Online (Sandbox Code Playgroud)-ObjC Loads all members of static archive libraries that implement an Objective-C class or category.
此标志包含用于解决链接类别的问题,因为默认情况下链接器不会包含仅包含结果二进制类别的对象文件.
因此,一般情况下,在通过CocoaPods向项目添加大型库时要小心.
AFNetworking分为子规格,因此您应该只能通过以下方式获得可达性部分:
pod 'AFNetworking/Reachability'
Run Code Online (Sandbox Code Playgroud)
或者你可以得到一个不同的更集中的pod,在cocoapods.org上搜索可达性
一般代码浪费:对于像AFNetworking这样的相对较小的库(源代码为270K),我不会太担心IPA的大小.在包含您不使用的代码方面,我猜您应该尝试找到最符合您需求的库.如果您可以选择准确编写所需的网络代码,或者使用经过验证的框架,即使您不使用它,我也会采用框架
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |