1. 程式人生 > >iOS開發專案BUG彙總及解決方案(持續更新)

iOS開發專案BUG彙總及解決方案(持續更新)

一.用Cocoapods新增第三方類庫出現‘XCTest/XCTest.h’file not found
1、點選Pods - TARGETS -[Pods-你的專案名Tests-Specta]-Build Settings ,搜尋Framework sear。
2、在Framework Search Paths 後雙擊,點選加號新增path:
$(PLATFORM_DIR)/Developer/Library/Frameworks
這裡寫圖片描述

二、新增第三方類庫造成的linker command failed with exit code 1 (use -v to see invocation)的錯誤除錯
這裡寫圖片描述


解決方法:在工作左邊導航欄Target–>Build Phases–>compile Sources中,第三庫庫的所有.m檔案都新增到裡面,然後編譯通過了;
這裡寫圖片描述
錯誤原因:第三方類庫檔案時直接將其拖拽到工程之中,編譯的的時候Xcode也沒有自動引用,所以造成這樣錯誤,這就需要我們手動新增。

三、對於未定義的屬性所導致的bug
這裡寫圖片描述
解決辦法,在對應的類中新增如下語句:
-(void)setValue:(id)value forUndefinedKey:(NSString *)key
當使用setValuesForKeysWithDictionary:方法時,對於資料模型中缺少的、不能與任何鍵配對的屬性的時候,系統會自動呼叫setValue:forUndefinedKey:這個方法,該方法預設的實現會引發一個NSUndefinedKeyExceptiony異常。
如果想要程式在執行過程中不引發任何異常資訊且正常工作,可以讓資料模型類重寫setValue:forUndefinedKey:方法以覆蓋預設實現,而且可以通過這個方法的兩個引數獲得無法配對鍵值。

四.ld: 1 duplicate symbol for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)
有以下三種情況
1.檔案重複
2.匯入第三方庫造成的
3.找到Build settings->Linking->Other Linker Flags,將此屬性修改成-all_load