今天偶然发现一个问题,在Xcode 4.6中,如果我尝试访问CALayer
而没有导入<QuartzCore/QuartzCore.h>
,就会收到警告。但是相同的代码在Xcode 5中可以正常工作。
今天偶然发现一个问题,在Xcode 4.6中,如果我尝试访问CALayer
而没有导入<QuartzCore/QuartzCore.h>
,就会收到警告。但是相同的代码在Xcode 5中可以正常工作。
是的,<QuartzCore/QuartzCore.h>
会自动包含,
但这似乎更多是一个副作用而不是预期的结果,因为
它只是间接包含:
<UIKit/UIKit.h>
包含 <UIKit/UISlider.h>
,<UIKit/UISlider.h>
包含 <QuartzCore/QuartzCore.h>
,
因为UISlider
类(CAShapeLayer
类型)有新的实例变量。此外,Xcode 5有一个名为 "Link Frameworks Automatically" 的新构建设置,默认情况下是开启的(需要新的 "modules" 功能),因此也会将QuartzCore框架添加到链接库中。
UISlider
头文件特别冗长,因为ivars在类接口中声明(我们在那里学习到iOS 7设计被称为“look neue”)...这可能不是有意的! - Guillaume