发布于 2015-05-28 14:58:44
每个人都错过了真实的故事。看看iOS 8.0APIDiffersforNSTimer(和许多其他类)。
Apple做了一个巨大的重构,将许多API转换成使用属性,而不是显式的setter/getter方法。
在iOS 8.0之前,NSTimer有一个名为isValid的方法。在iOS 8.0中,苹果删除了这个方法,并添加了只读属性valid (声明为getter方法名isValid )。
由于iOS 8.0中的这一更改(以及许多类似的变化),文档使得许多API看起来就好像它们只是在iOS 8.0中添加的一样,尽管它们可能已经存在了很长时间。
最终的结果是文档现在对许多属性非常误导。提交文档错误不太可能做任何事情,因为这个问题适用于数十个类和数百个属性/方法。
发布于 2015-05-28 11:59:22
苹果的文档更新了Swift,这就是为什么它为一些属性和方法提供了Available in iOS 8.0 and later,而这些属性和方法在以前的iOS版本中就已经存在了。例如,NSTimer是在iOS 2.0中引入的。你可以安全地使用它。
发布于 2015-05-28 12:46:28
我找到了NSTimer.h文件
@property NSTimeInterval tolerance NS_AVAILABLE(10_9, 7_0);
- (void)invalidate;
@property (readonly, getter=isValid) BOOL valid;
@property (readonly, retain) id userInfo;
@end看不到NS_AVAILABLE前面的valid属性,可能是苹果文档有一些错误
我也给出了反馈,以纠正它。

https://stackoverflow.com/questions/30505924
复制相似问题