プロジェクトを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;
他にすべきことはありますか?
@hw731
のコメントから、私はあなたがひどく使用していると思います@import
:
フレームワークをインポートするための古い構文:
#import <UIKit/UIKit.h>
しかし今、あなたは新しい構文を使うことができます:
@import UIKit;
これらのモジュールでキーワード@import
を使用できるようにする必要があります(Xcode 5で新しいプロジェクトを作成すると、デフォルトで有効になります)。
ご覧ください こちら 。
同じエラーが発生し、標準の場所を確認しました:
問題は、ヘッダーファイルがfile.mmにインポートされたファイルであることでした。これは、新しい@importモジュール構文をサポートしていないようです!そのヘッダーを古いスタイルの#import形式に変換し直したところ、すべてが問題なく動作しました。
また、pchファイルで次のコードを使用していることもわかりました。
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
と互換性がありません@import
。
UIActivityをサブクラス化し、.mファイルにプロパティを書き込むときに同じ問題
@property(nonatomic, strong)NSArray *activityItems;
このプロパティを.hファイルに移動することで修正されました。