为什么不在标准XCODEM模板中导入基础?h? 我注意到,当我在XCODE(基于视图的应用程序、基于窗口的应用程序等)中使用标准模板创建iPhone应用程序时,头文件只导入UIKIT.H(而不是Buff.h)。因此,如果不导入基础文件.h文件,如何在程序中使用NSString、NSrar等基础类?它不应该抛出一个错误吗
它将导入项目中的预编译头文件(扩展名为什么不在标准XCODEM模板中导入基础?h? 我注意到,当我在XCODE(基于视图的应用程序、基于窗口的应用程序等)中使用标准模板创建iPhone应用程序时,头文件只导入UIKIT.H(而不是Buff.h)。因此,如果不导入基础文件.h文件,如何在程序中使用NSString、NSrar等基础类?它不应该抛出一个错误吗,iphone,objective-c,xcode,ios,Iphone,Objective C,Xcode,Ios,它将导入项目中的预编译头文件(扩展名.pch) #ifdef __OBJC__ #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #endif #ifdef_uuobjc__ #进口 #进口 #恩迪夫 至于为什么UIKit.h似乎每个文件都有两行导入,因为上面也显示了它,不过我不太确定。不管怎么说都不要紧,因为第二版导入> 行不会再次包含UIKit,如果它已经包含在预编译头文件中。 如果
.pch
)
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif
#ifdef_uuobjc__
#进口
#进口
#恩迪夫
至于为什么
UIKit.h
似乎每个文件都有两行导入,因为上面也显示了它,不过我不太确定。不管怎么说都不要紧,因为第二版<代码>导入> <代码>行不会再次包含UIKit,如果它已经包含在预编译头文件中。 如果你查看一些单独的UIKIT标题,它们会导入基础。正如BoltClock所指出的,它也在standard.pch中
可以将其放置在所有这些位置的原因如下所述:
此指令与#include相同,只是它确保同一文件不会被多次包含。因此,在整个基于Objective-C的文档中,它是首选的,并被用来代替#包含在代码示例中
<>你要确保每个需要访问基础定义的符号的文件都有它们。重复的原因是它有助于阅读和理解代码;它说“此代码依赖于此头文件中的内容”。看起来模板文件设计用于使用或不使用预编译头文件,因此它们导入使用的头文件。如果创建
NSObject
的子类,模板文件将导入Foundation
。如果创建UIKit
对象的子类,将导入UIKit
标题
好的,那么当只导入UIKit
时,为什么可以使用Foundation
类,比如NSString
。几乎所有的UIKit
标题都导入Foundation.h
希望这是有意义的。那么UIKit/UIKit.h也会导入到预编译头中。为什么它会再次导入到我们的头文件中?