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