@import“程序中的”@“意外

我将项目更新到Xcode 5,并在构build设置中启用模块。 但是,当我使用@import时,我Unexpected '@' in program看到编译器错误Unexpected '@' in program

 #ifndef __IPHONE_7_0 #warning "This project uses features only available in iOS SDK 7.0 and later." #endif #ifdef __cplusplus #import <opencv2/opencv.hpp> #endif #ifdef __OBJC__ @import SystemConfiguration; @import UIKit; 

还有其他的事情是应该做的吗?

@hw731的评论我认为你使用不好@import

旧的语法来导入框架:

 #import <UIKit/UIKit.h> 

但现在,您可以使用新的语法:

 @import UIKit; 

您需要启用这些模块来使用关键字@import (当您使用Xcode 5创build新项目时,默认启用):

在这里输入图像说明

看看这里 。

得到同样的错误,检查标准的地方:

  • 是的,我有正确的代码语法
  • 是的,所有“Apple LLVM 5.0 – 语言 – 模块”设置均为YES。 在这个项目和每个目标。
  • 是的,我正在使用工作区,但检查了所有项目都启用了模块。 这两个项目和他们的每个目标。
  • 是的,检查我没有任何有趣的“聪明”的报价
  • 是的,检查我是在一个header.h或file.m文件(不是.mm / .c / .cpp / .hpp)

问题是头文件被导入到file.mm文件中,这似乎不支持新的@import模块语法! 把这个头文件转换成旧式的#import格式,一切都很好。

我还发现,在pch文件中使用以下代码:

 #ifdef __cplusplus #import <opencv2/opencv.hpp> #endif 

@import不兼容。

同样的问题,当我inheritanceUIActivity,并在.m文件中写入属性为

 @property(nonatomic, strong)NSArray *activityItems; 

通过将该属性移动到.h文件来修复。