首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS工程中将宏和常量放入.pch文件中?

如何在iOS工程中将宏和常量放入.pch文件中?
EN

Stack Overflow用户
提问于 2012-06-02 15:52:09
回答 2查看 2K关注 0票数 0

我听说.pch很适合放入宏和常量定义,所以对于它的默认内容:

代码语言:javascript
复制
#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 )

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-02 16:39:03

预编译头旨在改善项目的整体编译时间,因此预编译头的设计完全是由性能问题驱动的。预编译头文件的用例相对简单:当项目中几乎每个源文件中都包含一组通用的头文件时,我们将该组头文件预编译成一个预编译头文件(PCH文件)。

.pch文件允许你导入像UIKit.h和Foundation.h这样的文件(而不是在项目的每个.h中导入它们),如果你已经在.pch中导入了这些文件,那么你自己的类中就不需要导入它们。

#ifdef OBJC的意义在于,如果您没有将编译器设置为构建objective C代码,则不会导入包含objective-c代码的头文件(从而避免了大量编译器错误)。

票数 2
EN

Stack Overflow用户

发布于 2012-06-02 16:31:10

我通常放入的任何额外的导入:

代码语言:javascript
复制
#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

您是对的,不需要再次导入其中的一个,但这样做没有什么坏处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10860724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档