哪个 iOS 版本支持 NSTimer valid 属性?
What iOS version supports NSTimer valid property?
我注意到最奇怪的事情。我正在玩 NSTimer,同时经历 Apple documentation, I've reached to the valid
property here, and noticed that this property is available since iOS 8. This fact by its own isn't weird, but the fact the tons of Whosebug posts from 4-6 years ago regarding NSTimer are referring to this property or suggesting to use it got me confused: Example 1, example 2, example 3 和许多其他。
所以我的问题分为2个:
- 哪些iOS版本真正支持NSTimer
valid
属性?
- 如果我的目标是 iOS 7 及以上,使用这个 属性 安全吗?
提前致谢。
Apple 文档针对 Swift 进行了更新,这就是为什么它的某些属性和方法具有 Available in iOS 8.0 and later
,而自从以前的 iOS 版本以来它们肯定存在。例如,NSTimer
是在 iOS 2.0 中引入的。您可以放心使用。
我转到 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
看不到valid
前面的NS_AVAILABLE
属性,可能是apple docs有一些错误
我也反馈改正了
每个人都错过了真实的故事。查看 iOS 8.0 API 与 NSTimer
(以及许多其他 类)的差异。
Apple 进行了一次巨大的重构,将许多 API 转换为使用属性而不是显式 setter/getter 方法。
在 iOS 8.0 之前,NSTimer
有一个名为 isValid
的方法。在 iOS 8.0 中,Apple 删除了此方法并添加了只读的 属性 valid
(使用 getter 方法名称 isValid
声明。
由于 iOS 8.0 中的这一变化(以及许多类似的变化),文档使许多 API 看起来就像是刚添加到 iOS 中一样8.0,尽管它们可能存在的时间更长。
最终结果是文档现在对许多属性具有很大的误导性。提交文档错误不太可能起任何作用,因为此问题适用于数十个 类 和数百个 properties/methods.
我注意到最奇怪的事情。我正在玩 NSTimer,同时经历 Apple documentation, I've reached to the valid
property here, and noticed that this property is available since iOS 8. This fact by its own isn't weird, but the fact the tons of Whosebug posts from 4-6 years ago regarding NSTimer are referring to this property or suggesting to use it got me confused: Example 1, example 2, example 3 和许多其他。
所以我的问题分为2个:
- 哪些iOS版本真正支持NSTimer
valid
属性? - 如果我的目标是 iOS 7 及以上,使用这个 属性 安全吗?
提前致谢。
Apple 文档针对 Swift 进行了更新,这就是为什么它的某些属性和方法具有 Available in iOS 8.0 and later
,而自从以前的 iOS 版本以来它们肯定存在。例如,NSTimer
是在 iOS 2.0 中引入的。您可以放心使用。
我转到 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
看不到valid
前面的NS_AVAILABLE
属性,可能是apple docs有一些错误
我也反馈改正了
每个人都错过了真实的故事。查看 iOS 8.0 API 与 NSTimer
(以及许多其他 类)的差异。
Apple 进行了一次巨大的重构,将许多 API 转换为使用属性而不是显式 setter/getter 方法。
在 iOS 8.0 之前,NSTimer
有一个名为 isValid
的方法。在 iOS 8.0 中,Apple 删除了此方法并添加了只读的 属性 valid
(使用 getter 方法名称 isValid
声明。
由于 iOS 8.0 中的这一变化(以及许多类似的变化),文档使许多 API 看起来就像是刚添加到 iOS 中一样8.0,尽管它们可能存在的时间更长。
最终结果是文档现在对许多属性具有很大的误导性。提交文档错误不太可能起任何作用,因为此问题适用于数十个 类 和数百个 properties/methods.