1. 程式人生 > >oc和c/c++混編的一些坑

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。