轉(zhuǎn)載51CTO 網(wǎng)+ 第十二期沙龍:大話數(shù)據(jù)之美_如何用數(shù)據(jù)驅(qū)動用戶體驗
http://mobile.51cto.com/iphone-407056.htm
方法一:直接復制所有源文件到項目中
這種方法就是把第三方類庫的所有源文件復制到項目中,直接把所有.h和.m文件拖到XCode項目中即可拐邪。如果第三方類庫引用了一些系統(tǒng)自帶類庫慰毅,那么在項目中還需要額外引用那些類庫。
如果當前的項目啟用了ARC扎阶,而引用的第三方類庫未使用ARC汹胃,那還需要在項目信息的Targets–Build Parses里找到第三方類庫的.m文件婶芭,并為它們加上-fno-objc-arc標記。
而對于在未啟用ARC的項目用引用使用了ARC的第三方類庫着饥,則需要為第三方類庫的.m文件加上-fobjc-arc標記犀农。
另外,在源代碼中可以通過一個編譯器指令__has_feature(objc_arc)來檢測項目是否使用了ARC宰掉,具體見http://clang.llvm.org/docs/LanguageExtensions.html#langext-has-feature-has-extension呵哨。
方法二:引用.xcodeproj生成靜態(tài)鏈接庫并引用
首先,在XCode中把第三方類庫的.xcodeproj文件拖到當前項目中轨奄;如果第三方類庫封裝了一些資源在.bundle文件里孟害,那么.bundle文件需要和.xcodeproj一起拖到項目中。
然后挪拟,在項目的Targets – Summary – Linked Frameworks and Libraries或者在Targets – Build Phases – Link Binary With Libraries添加第三方類庫生成的靜態(tài)鏈接庫引用挨务。
接著,還需要在Targets – Build Settings – Search Paths的User Header Search Paths參數(shù)中加入第三方類庫的頭文件路徑玉组,可以是絕對路徑如:/Users/libpath谎柄,也可以是相對路徑(相對于當前項目文件夾)如:../**。
最后惯雳,有些靜態(tài)鏈接庫引用進來可能還需要增加一些標記朝巫,在Targets – Build Settings – Linking的Other Linker Flags參數(shù)中增加:-Objc,–all_load這一類標記。
通過以上幾步石景,一般都可以成功編譯捍歪。
當然還有一些例外的情況:
當前項目和第三方類庫同時使用了另外的一些第三方類庫,這個時候還需要額外做一些處理才能成功編譯:在引用的第三方類庫的.xcodeproj項目 – Targets – Build Phases中的Compile Sources和Copy Headers把重復的.m和.h文件移除掉鸵钝。
第三方類庫引用的一些系統(tǒng)自帶類庫,如果項目中沒有引用庐镐,也可能會引起編譯錯誤恩商,這時還需要在項目中引用第三方類庫引用的一些系統(tǒng)自帶類庫。比如:第三方類庫引用了QuartzCore.framework必逆,而項目中未引用QuartzCore.framework則可能引起編譯錯誤怠堪,就需要在項目中也引用QuartzCore.framework。