2015-12-02 3 views
-2

Я строю мобильных приложений (IPhone), я новичок использовать C++ в Xcode, это мой код«NSString» не был объявлен в этой области

NSInteger myInteger = 42; 
int myInt = (int) myInteger; 

Он должен работать, потому что Я могу собрать как Objective-C++ и C++ в Xcode, но я получаю эту ошибку

'NSString' was not declared in this scope 

Любые предложения?

+3

Покажите фактический код, вместе с которым строка вызывает ошибку. – Avi

+1

Странная ошибка для получения, когда вы используете NSInteger, и компилятор жалуется на NSString. – gnasher729

ответ

0

На самом деле, да, вы можете написать как Objective-C, Objective-C++, так и C++ с помощью xcode, но вам нужно убедиться, что это расширение файла, которое вы используете.

Если это .m, это означает, что вы можете скомпилировать только код цели-c, и вы не можете написать код C++.

Если это .mm, это означает, что вы можете использовать Objective-C++, чтобы в этом случае вы могли скомпилировать код C++.

Если это .cpp, это означает, что вы можете только скомпилировать код C++.

Ваш вопрос не настолько ясен, но я думаю, что эта проблема может произойти, потому что расширение файла - .cpp.

Если вы используете .cpp файл, так что вы должны изменить его .mm файл, или не использовать NSInteger и использовать int вместо.

Edit:

NSString является типом Objective-C и не может быть использован в C++ код, поэтому постарайтесь собрать как Objective-C++, путем изменения расширения файла из .cpp в .mm

+1

Таким образом, ответ будет «NSString» является объектом Objective-C и не может использоваться в коде на C++, поэтому попытайтесь скомпилировать его как Objective-C++ »? – trojanfoe

+0

Да, я думаю, что 'NSString 'не был объявлен в этой области' появится в основном из-за этого (я имею ввиду из-за расширения' .cpp'. –

+0

Плюс вопрос не так много деталей –

Смежные вопросы