在 Prefix.pch 中过度导入? (#ifdef __OBJC__)

Posted

技术标签:

【中文标题】在 Prefix.pch 中过度导入? (#ifdef __OBJC__)【英文标题】:Over importing in Prefix.pch? (#ifdef __OBJC__) 【发布时间】:2012-11-23 20:29:41 【问题描述】:

所以,如果我没记错的话,在我的项目的 Prefix.pch 中导入的任何内容都会被导入到我的每个新类中。但是,默认情况下,任何 NSObject 子类都导入 Foundation/Foundation.h,视图子类在各自的头文件中导入 UIKit/UIKit.h。

这不是过度进口吗?我没有在我的类中两次导入框架头文件吗?

【问题讨论】:

【参考方案1】:

它是无害的。如果指定的文件已经被导入,#import 预处理器指令什么也不做。

【讨论】:

.pch 似乎在任何objective-c 类中都导入了UIKit.h 和Foundation.h 的事实呢?它实际上会将两者都导入到所有东西中吗?大多数 NSObject 子类不需要 UIKit.h,那么为什么它会自动导入它——或者至少看起来是这样?【参考方案2】:

没有任何方法可以避免该警告。警告是警告而不是错误,因为它们可能是错误的。在这种情况下,请忽略警告。

【讨论】:

以上是关于在 Prefix.pch 中过度导入? (#ifdef __OBJC__)的主要内容,如果未能解决你的问题,请参考以下文章

iOS Prefix.pch 最佳实践

预处理器设置混乱

如何像在 iOS 中一样在 WP8 中使用 Prefix.pch?

项目找不到 RestKit-Prefix.pch

为啥 Xcode 模板的 #imports 与 Prefix.pch 重复?

如何阻止巨大的 Prefix.pch.gch 文件被复制到应用程序包中