我在我项目的PCH文件中输入了一个常用的C块类型:
typedef void (^UserBlock)(PFUser* user);
当我尝试在这样的标题中定义Objective 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。
答案 0 :(得分:0)
发现问题。我收到错误的头文件被导入到PCH文件之前 typedef。我已经将typedef移到了header导入之上,问题就消失了。