导入第三方库unknown type name 'NSString'的解决方案

在公司负责弹幕库,最近在发现core animation有些问题,想尝试下facebook 出的pop动画引擎。pop是一个objectviewc++和cpp的库,为了简单,我直接用了pop文件夹里面的文件,没有集成coacoapods。在demo工程中,我把弹幕sdk和pop文件夹放在了danmudemo工程的同一级目录,运行ok。如图


导入第三方库unknown type name 'NSString'的解决方案_第1张图片

ok,现在我把pop文件夹集成到自己的弹幕sdk中,这时出现了一堆unknown type name 'nsstring'的错误。


导入第三方库unknown type name 'NSString'的解决方案_第2张图片

很头疼,虽然将Compile Sources As 改为 Objective-C++这种方式很可行,但是会造成我的sdk里面其他报错需解决。找了很久,发现一个解决办法:http://stackoverflow.com/questions/19723392/adding-c-file-causes-pch-error

应该是pch文件预编译的问题,也就是说,把foundation以及uikit等oc的东西作为头编译进c/c++代码了。为了验证这个问题,我把facebook在github上的工程也添加了pch,并#import,结果报错。尝试

#ifdef __OBJC__

#import

#endif

可以run起来。然后我修改了自己的pch预编译方式。如图


导入第三方库unknown type name 'NSString'的解决方案_第3张图片
建议把其他头文件里面的uikit和foundation引用可以去掉了。结果ok,正常编译运行。

你可能感兴趣的:(导入第三方库unknown type name 'NSString'的解决方案)