2010-01-25 31 views

回答

4

添加到什么臂架写道:使用这些功能,一个源代码的顶部放线

#import <Foundation/Foundation.h> 

。这对应于在标准C. 在OS X #include <stdio.h>

#import <FirstPart/SecondPart.h> 

FirstPart.framework在框架搜索路径某处读取头文件(通常,/System/Library/Frameworks),然后将SecondPart.h中查找内部FirstPart.framework/Headers/。所以,在#import <Foundation/Foundation.h>的情况下,该文件位于/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h。现在,如果你打开该文件,你会看到它只是有很多其他#import的,如在:

#import <Foundation/NSObjCRuntime.h> 
#import <Foundation/NSArray.h> 
#import <Foundation/NSAutoreleasePool.h> 
.... 

和真实定义在这些文件。一般来说,你不应该导入这些单独的头文件,而应该只导入主头文件(在这种情况下为Foundation/Foundation.h);编译器有一个优化,这使得它更快。

+0

所有的头文件都在那里。但是存储的实现(.m)文件将放在哪里。 – SNR 2011-06-14 08:13:25

+0

.m文件不公开。只有编译的库随OS一起提供。编译的库被称为'Foo.framework/Foo'。 – Yuji 2011-06-14 14:27:55

3

NSLog和NSArray都在Foundation.framework中定义。在XCode cmd中单击一个符号以跳转到一个定义。您可以将环境变量DYLD_PRINT_LIBRARIES添加到应用程序,以在应用程序启动时记录库加载。

0

NSLog,NSArray和其他基本类都包含在Framework.h文件中。要在程序中导入所有这些类,只需添加

#import Framework\Framework.h 并为编译器留下余地。