首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么iOS版本支持NSTimer有效属性?

什么iOS版本支持NSTimer有效属性?
EN

Stack Overflow用户
提问于 2015-05-28 11:55:46
回答 3查看 148关注 0票数 3

我注意到了最奇怪的事。我在玩NSTimer,在浏览苹果文档的时候,我已经找到了valid property 这里,并且注意到这个属性在iOS 8之后就可以使用了。这个事实本身并不奇怪,但4-6年前关于NSTimer的大量堆叠溢出帖子是指这个属性或建议使用它,这让我感到困惑:示例1例2例3和其他许多其他东西。

所以我的问题分为两部分:

  • 哪些iOS版本真正支持NSTimer valid属性?
  • 如果我的目标是iOS 7和更高版本,那么使用这个属性安全吗?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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中添加的一样,尽管它们可能已经存在了很长时间。

最终的结果是文档现在对许多属性非常误导。提交文档错误不太可能做任何事情,因为这个问题适用于数十个类和数百个属性/方法。

票数 2
EN

Stack Overflow用户

发布于 2015-05-28 11:59:22

苹果的文档更新了Swift,这就是为什么它为一些属性和方法提供了Available in iOS 8.0 and later,而这些属性和方法在以前的iOS版本中就已经存在了。例如,NSTimer是在iOS 2.0中引入的。你可以安全地使用它。

票数 3
EN

Stack Overflow用户

发布于 2015-05-28 12:46:28

我找到了NSTimer.h文件

代码语言:javascript
运行
复制
@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属性,可能是苹果文档有一些错误

我也给出了反馈,以纠正它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30505924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档