@import "Неожиданное" @ "в программе"
Я обновил проект до 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;
Что-нибудь еще должно быть сделано?
4 ответа
Из комментария @hw731
Я думаю, что вы используете плохо @import
:
старый синтаксис для импорта фреймворка:
#import <UIKit/UIKit.h>
но теперь вы можете использовать новый синтаксис:
@import UIKit;
вам нужно включить эти модули, чтобы использовать ключевое слово @import
(это включено по умолчанию, когда вы создаете новый проект с Xcode 5):
Посмотрите здесь.
Получил ту же ошибку, проверил стандартные места:
- Да, у меня правильный синтаксис кода
- Да, все настройки "Apple LLVM 5.0 - Языки - Модули" - ДА. И в этом проекте, и у каждого свои цели.
- Да, я использую рабочее пространство, но проверил, что во всех проектах включены Модули. Оба проекта и их цели.
- Да, проверил, у меня нигде нет забавных "умных" цитат
- Да, проверил, что я в файле header.h или file.m (не.mm/.c/.cpp/.hpp)
Проблема заключалась в том, что файл заголовка был импортирован в файл file.mm, который, похоже, не поддерживает новый синтаксис модуля @import! Преобразовал этот заголовок обратно в старый стиль #import, и все снова было хорошо.
Я также обнаружил, что с помощью следующего кода в файле pch:
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
не совместимы с @import
,
Та же проблема, когда я создаю подкласс UIActivity и записываю свойство в файл.m как
@property(nonatomic, strong)NSArray *activityItems;
исправлено перемещением этого свойства в файл.h.