無法編譯通過
duplicate symbol
注意頭文件中是否引入了.m文件
Apple Mach-O Linker Error
使用extern時乃摹,一定要注意命名的一致
代碼警告
-Warc-performSelector-leaks
如果selector是在運行時才確定的踱蛀,performSelector時摘昌,若先把selector保存起來,等到某事件發(fā)生后再調(diào)用,相當于在動態(tài)綁定之上再使用動態(tài)綁定夜赵,不過這是編譯器不知道要執(zhí)行的selector是什么,因為這必須到了運行時才能歐確定排作,使用這種特性的代價是牵啦,如果在ARC下編譯代碼,編譯器會出現(xiàn)此警告妄痪。
原因是:編譯器不知道執(zhí)行的selector是什么哈雏,因此也就不了解其方法簽名及其返回值,甚至連是否有返回值都不清楚,由于編譯器不知道方法名裳瘪,也就沒有辦法運用ARC的內(nèi)存管理規(guī)則來判定返回值是不是應(yīng)該釋放土浸。所以ARC采用了一種比較謹慎的方法,就是不添加釋放操作彭羹,然而這么做有可能導(dǎo)致內(nèi)存泄漏黄伊,因為方法在返回對象時可能已經(jīng)將其保留了。
如果你確定不會發(fā)生內(nèi)存泄漏的情況下派殷,可以使用如下的語句來忽略掉這條警告
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"