我将项目更新为Xcode 5并在构建设置中启用了模块。
但是,当我使用Unexpected '@' in program
时,我看到了编译器错误@import
。
#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;
还有什么应该做的吗?
答案 0 :(得分:64)
来自@hw731
的评论我觉得你使用得很糟@import
:
导入框架的旧语法:
#import <UIKit/UIKit.h>
但现在,您可以使用新语法:
@import UIKit;
您需要启用这些模块以使用关键字@import
(当您使用Xcode 5创建新项目时默认启用它):
看看here。
答案 1 :(得分:12)
得到同样的错误,检查标准位置:
问题是头文件是导入到file.mm 文件中,这似乎不支持新的@import模块语法!将该标题转换回旧样式#import格式,一切都很好。
答案 2 :(得分:5)
我还发现在pch文件中使用以下代码:
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
与@import
不兼容。
答案 3 :(得分:0)
当我将UIActivity子类化并将.m文件中的属性写为
时,同样的问题@property(nonatomic, strong)NSArray *activityItems;
通过将此属性移动到.h文件来修复。