2013-07-16 2 views
1

я добавил что-то в -prefix.pch файле, но XCode дает мне ошибку, когда я использую его, говоря:XCode не может найти #define макрос * prefix.pch но компилирует OK

Использование неопределенного идентификатора ...

Однако, если я его скомпилирую (Command + B), он компилируется, поэтому я думал, что это вызвано производными данными, затем я попытался удалить производные данные (чтобы заставить его быть сгенерированным снова), но в Organizer для проекта не было никаких данных, я также попробовал Clean, но не работает.

Может ли кто-нибудь помочь?

редактировать: макрос я определил не имеет значения для вопроса, но вот макрос:

#define IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 

редактировать 2: Я добавил Киви в качестве модульного тестирования инструмента для проекта, вероятно, что-то в настройках проекта являются которые вызвали эту проблему.

+0

Можете ли вы изменить свой вопрос, и включают в себя конкретные макрос, который вы пытаетесь добавить – Andrew

ответ

0
You will need to include inly framework related headers and also adding header in pch file means you need not import that header in any of the file in your project. 
#import <Availability.h> 
#ifndef __IPHONE_3_0 
#warning "This project uses features only available in iOS SDK 3.0 and later." 
#endif 
#ifdef __OBJC__ 
#import <UIKit/UIKit.h> 
#import <Foundation/Foundation.h> 
#endif 
+0

Да, я сделал это, скажем, если вы '#define MYNUM 0' в файле pch, тогда используйте' MYNUM' в другом месте, XCode сообщает мне, что он не может найти 'MYNUM', но когда я компилирую, он работает, и приложение запускается. – hzxu

+0

создайте один файл .h как commonmacros.h и добавьте в него макрос и просто импортируйте этот заголовок commonmacros.h в класс, который используете – NHS

+0

. Это не решает мою проблему. – hzxu

0

as bbum говорит

Ewww ... не ставить макросы в файл .PCH! Файл .pch является, по определению, конкретным проектом с предварительно скомпилированным заголовком. Это действительно не должны использоваться вне контекста проекта, и он действительно не должен содержать ничего, кроме директив #includes и #imports 1

может быть, это поможет

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