非Objc文件(c, c++)引起的NSObjCRuntime错误
今天在objc工程中,导入一些c、c++文件时,,编译引起了NSObjCRuntime错误,,,仔细检查发现,
原来是在SK_Prefix.pch中,定义了
View Code
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__里面
View Code
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