2012-06-02 4 views
0

Я слышал, что .pch хорошо для ввода макросов и константы определений, поэтому для его содержимого по умолчанию:Как поместить макросы и константы в файл .pch в проекте iOS?

#import <Availability.h> 

#ifndef __IPHONE_4_0 
#warning "This project uses features only available in iOS SDK 4.0 and later." 
#endif 

#ifdef __OBJC__ 
    #import <UIKit/UIKit.h> 
    #import <Foundation/Foundation.h> 
#endif 

где следует определение положить в? Странно, что это, кажется, импортируя UIKit.h, но ViewController.h также импортировать тот же файл (я думал, что .pch импортируется всеми файлами по умолчанию? Так ViewController.h не нужно импортировать UIKit.h снова)

+1

Ваш путь верный, взгляните на этот вопрос http://stackoverflow.com/questions/2845211/iphone-prefix-pch-best-practices – self

ответ

2

Предварительно скомпилированные заголовки предназначены для улучшения общего времени сборки для проектов, поэтому дизайн предварительно скомпилированных заголовков полностью зависит от производительности. Вариант использования для предварительно скомпилированных заголовков относительно прост: при наличии общего набора заголовков, который включен почти в каждый исходный файл проекта, мы предварительно скомпилируем этот набор заголовков в один предварительно скомпилированный заголовок (файл PCH).

Файл .pch позволяет импортировать файлы типа UIKit.h и Foundation.h (а не импортировать их в каждый .h вашего проекта). Если у вас есть файлы, импортированные в .pch, в ваших собственных классах don Им нужно импортировать их.

Значение #ifdef OBJC заключается в том, что вы не импортируете заголовки, содержащие объектный код, если у вас нет компилятора для создания объектного кода c (следовательно, избегайте большого количества ошибок компилятора).

1

Любого дополнительного импорт я обычно ставится в с:

#ifdef __OBJC__ 
    #import <UIKit/UIKit.h> 
    #import <Foundation/Foundation.h> 
#endif 

Вы правильны, нет необходимости импортировать один из них снова, но нет никакого вреда в этом.

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

  • Нет связанных вопросов^_^