LLVM为什么不使用Xcode编译pch文件中的typedeffed C块?

Can Poyrazoglu

我在项目的PCH文件中键入了常用的C块类型:

typedef void (^UserBlock)(PFUser* user);

当我尝试在标头中定义目标C方法时,如下所示:

+(void)ensureUserWithID:(NSString *)userID withCompletion:(UserBlock)completionHandler

我在上Expected a type出错UserBlock但是,如果我将typedef从PCH移到该头文件的开头,则会进行编译(带有警告Redefinition of typedef 'UserBlock' is a C11 feature。我已经清理了构建文件夹,删除了派生数据,重新启动了Xcode,但仍然遇到相同的错误。我的PCH中也有其他定义,它们只是在编译文件,我所遇到的麻烦是PCH中定义的C块类型,为什么会遇到这种行为呢?我使用的是Xcode 5.1.1和LLVM 5.1。

Can Poyrazoglu

找到了问题。在typedef之前,我遇到错误的头文件已导入到PCH文件我已经将typedef移到了标头导入上方,问题就消失了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章