今天在objc工程中,导入一些c、c++文件时,,编译引起了NSObjCRuntime错误,,,仔细检查发现,
原来是在SK_Prefix.pch中,定义了
1 #ifdef __OBJC__ 2 #import <Foundation/Foundation.h> 3 #import <UIKit/UIKit.h> 4 #endif 5 6 #import "Utils.h" 7 #import "Constants.h" 8 #import "SKBackgroundNavigation.h" 9 #import "BusConfig.h"
这样导致了Project里的非Objc文件也引入了这些声明,于是出现了上面的错误。修正的办法就是把相关声明都放到__OBJC__里面
1 #ifdef __OBJC__ 2 #import <Foundation/Foundation.h> 3 #import <UIKit/UIKit.h> 4 #import "Utils.h" 5 #import "Constants.h" 6 #import "SKBackgroundNavigation.h" 7 #import "BusConfig.h" 8 #endif
本文详细介绍了在Objective-C工程中导入C/C++文件时遇到NSObjCRuntime错误的原因及解决方案。通过将Objective-C相关的导入语句限定在__OBJC__宏内,避免了非Objective-C文件被不必要的声明污染,从而解决了编译错误。

3557

被折叠的 条评论
为什么被折叠?



