oc和c/c++混編的一些坑
情況一:匯入檔案類:(如.pch檔案)
1 , 檢查pch 是否匯入標頭檔案 , 匯入是否可用 ;
2,解決:在引用標頭檔案開始加入#ifdef __OBJC__ 結束時加入#endif,例如
#ifndef PureStandard_PrefixHeader_pch
#define PureStandard_PrefixHeader_pch
#ifdef __OBJC__
#import "A.h"
#import "B.h"
#endif
#endif
情況二:系統檔案(Xcode檔案)被修改
可能性:UIKit等庫損壞或被修改(貌似ios5以上不能修改,一改就壞),也就是你檢視Xcode編譯器系統檔案(也就是NSString之類的內部檔案)時不小心改了
解決:
1,根據記憶,看看自己這段時間點進去查看了那些系統類的屬性,點進系統類去,按“Command +Z” 撤銷修改(如果有修改的話);
(情景提示:錯誤出現原因,比如你按Command鍵並把滑鼠移到NSLog上,點選去檢視屬性,翻來滾去不小心改了某些內容)
2,根據左邊錯誤提示,點選紅點錯誤去到相應的檔案,按“Command +Z” 撤銷修改(如果有修改的話);
3,出現問題通常通過刪除moduleCache就可以了,這也是網上通常的做法;也可以試試Xcode頭頂的選項 product --> clean 一下試試;
(moduleCache目錄: /Users/userName/Library/Developer/Xcode/DerivedData/ModuleCache
其中路徑中userName通常是mac的使用者名稱,這個目錄會有點亂,找到/ModuleCache就好)
4,在本機上無論如果多次刪除moduleCache都無效,去向別的正常Xcode拿個.h檔案(懷疑被修改的)替換自己Xcode的檔案;
5,最後一個解決辦法:沒辦法的辦法,花十幾分鍾重灌一下Xcode。