objective-c - 为什么一个简单的程序导入 <Foundation/Foundation.h> 而不是单独的头文件?

标签 objective-c

我是 Objective-C 的新手。 Xcode生成的模板代码包含:

#import <Foundation/Foundation.h>

当我在/System/Library/Frameworks/Foundation.framework/Headers 查看时,有将近 2000 个头文件!

我的问题是,对于仅使用 NSString 的非常简单的代码,为什么不只导入 NSString.h 文件?

导入一大堆Foundation框架会影响可执行文件的性能吗?如果没有,它有什么好处吗?

最佳答案

它不会影响性能,因为内置框架都已安装在您的设备上,已经准备好与您的可执行文件链接。

你在说什么 #import <Foundation/Foundation.h>是“我想访问 Foundation 框架的功能,即使我不使用它”。它是一种语义划分。

编译器将进行所有需要进行的优化,以丢弃未使用的符号。

只是在 NSString.h 上导入的问题是你知道 NSString 有哪些依赖项。我不知道,也不需要。

关于objective-c - 为什么一个简单的程序导入 <Foundation/Foundation.h> 而不是单独的头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487285/

相关文章:

iphone - 如何减小应用程序的大小

objective-c - OBJ-C : NSStrings - stringByAppendingString method

iphone - iPhone OS (iOS 4) 上的 Bignum、线性代数和数字信号处理

objective-c - 从当前日期减去 7 天

iphone - NSMutableArray 到字节数组到字符串

ios - 子类化 UIButton 并检测 UIControlEventTouchUpInside

ios - 当您同时触摸两个按钮时会发生什么

java - Objective-C 。你能像 Java 接口(interface)那样使用协议(protocol)吗?

iphone - 是否可以调用带有分机号的电话号码?

objective-c - objective c 函数和方法的区别