按照正常情況下城榛,報錯
unrecognized selector sent to instance 地址符
都是因為野指針俱恶,對象提前銷毀武学,或者是調(diào)用的方法沒有栈源,或者是 unmutable 對象調(diào)用了 mutable 類的方法募判,導(dǎo)致出錯荡含,對于一般的 iOSer 來說,只要細(xì)心一點都能夠很快的解決這個問題届垫,但是自從升級到 Xcode 9 释液,發(fā)生這個問題的因素又增加了一條,而且由于慣性的原因装处,可能一般人不會太關(guān)注误债。
一、使用 Cocoapods 做項目包管理器
? 正常情況下妄迁,只要在 pod 文件中正確引用寝蹈,在項目中就能夠直接使用,但是在 Xcode 中會出現(xiàn)登淘,通過 cocoapods 應(yīng)用之后箫老,Build 的時候沒有出現(xiàn)問題,但是在 Run 的時候黔州,因為不能找到執(zhí)行文件(.m)直接 Crash耍鬓。
二、直接向項目中添加文件
? 有時候可能會直接向項目總拖拽文件流妻,之前的時候牲蜀,拖拽完也是能夠直接使用的,但是在 Xcode 9 時代大部分情況下不能夠使用绅这。我之前就是將自己之前寫好的 Category 文件拖拽進(jìn)去涣达,在 Build 階段一直都沒有問題,但是在 Run 的時候,找不到方法和屬性而 Crash峭判,我以為是蘋果更新了 Category 的屬性开缎,我沒有關(guān)注而導(dǎo)致的問題,找了好一會林螃,最后才發(fā)現(xiàn)也是 Xcode 的 bug奕删,并沒有直接將執(zhí)行文件添加到項目中去。
總結(jié):
? 解決有 Xcode 9 的 bug 引起的以上兩種不正常的 Crash 的方法如下:
在 Build Phases 中的 compile Sources 中點擊下方加號疗认,添加對應(yīng)的 .m 文件完残,解決由于 Xcode 9 引起的找不到方法的bug。
PS
? 其他的因為找不到地址而引起的 bug横漏,還希望各位 iOSer 細(xì)心 review 自己的代碼谨设,爭取盡量少寫 bug。