1. 程式人生 > >Xcode 10碰到的坑及解決辦法(更新中)

Xcode 10碰到的坑及解決辦法(更新中)

為了響應程式碼開發的號召,我在第一時間更新了xcode10,下完發現之前的專案編譯出錯,新建的專案也有一系列問題,碰壁了半天又去搜資料,暫時解決了出現的問題,記錄如下:

問題一:以前的程式碼編譯出錯

第一步:
原因:libc++.tbd 庫取代了libstdc++.6.0.9.tbd庫
解決方法:我在專案裡去掉了libstdc++.6.0.9.tbd庫

這個時候去編譯還是會報錯,
解決方法:Xcode-file-workspace setting-build system-legacy build system
在這裡插入圖片描述
修改成老的編譯系統就可以成功執行程式碼了

問題二和問題三都是更改成legacy build system的這個方法可以解決的問題:

問題二:新的專案中,使用pod匯入第三方庫以後,如果做了自動匯入標頭檔案的設定, 在專案中匯入標頭檔案的時候會無限閃退,不做這個設定則不提示匯入庫的標頭檔案,很不方便

問題三:專案中不能匯入不在同一級的資料夾下的標頭檔案

問題四:程式碼有黃色警告 Null passed to a callee that requires a non-null argument,意思是某個屬性不能為空

原因:由於建立一個類的時候會自動加上
NS_ASSUME_NONNULL_BEGIN&&NS_ASSUME_NONNULL_END巨集,包住多個屬性全部具備nonnull

_nullable && ___nonnull

__nullable指代物件可以為NULL或者為NIL
__nonnull指代物件不能為null

所以在屬性為空值時會報警告,只要宣告一下屬性的__nullable就好了,例如:

-(NSString*)encoingWithDic:(NSMutableDictionary *__nullable)dataDic

暫時遇到這幾個問題,接下來開發過程中如果有其他問題,我會更新文章!