与cocoapods ios一起工作
我知道cocoapod正在简化手动添加库的工作,或让开发人员专注于他的实际源代码。
但我的问题是,如果我只需要从某些项目的一些源文件,然后通过安装相同的cocoapod好添加整个库? 就像我只需要Reachability
类文件那么为什么我应该采取整个AFNetworking
是不是创build代码冗余或增加我的iPA大小或其他性能问题?
一般来说,在Objective-C的项目中添加一个静态库将会把所有的对象文件拉到你的结果二进制文件中,因为cocoa豆荚安装会为你的链接器设置添加-ObjC标志,正如链接器手册所述:
-ObjC Loads all members of static archive libraries that implement an Objective-C class or category.
此标志包含解决链接类别的问题,因为在默认情况下,链接器不会将仅包含类别的对象文件包括到生成的二进制文件中。
所以,一般来说,当通过CocoaPods添加一个大型的库到项目中时,要小心。
AFNetworking分为subspecs,所以你应该能够得到只是可达性部分:
pod 'AFNetworking/Reachability'
或者你可以得到一个更有针对性的pod, 在cocoapods.org上search可达性
就一般的代码浪费而言:对于像AFNetworking这样的相对较小的库来说,我不会太担心IPA的大小(磁盘上的270K)。 在包括代码你不使用我想你应该尝试find最符合您的需求的库。 如果你可以select编写你需要的networking代码,或者使用一个经过validation的框架,即使你没有使用它,我会采取框架