首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift中的NSDate()与NSDate.date()

Swift中的NSDate()与NSDate.date()
EN

Stack Overflow用户
提问于 2014-10-29 10:57:51
回答 4查看 38.2K关注 0票数 42

我与Bloc.io Swiftris tutorial一起跟踪,他们通过以下方式初始化日期:

代码语言:javascript
复制
lastTick = NSDate.date()

它会导致编译错误:

代码语言:javascript
复制
'date()' is unavailable: use object construction 'NSDate()'

其中应相等于:

代码语言:javascript
复制
NSDate *lastTick = [NSDate date];

(来自NSDate reference)

苹果是否改变了Swift interface to NSDate,因为我见过其他使用NSDate.date的例子?

这仅仅是NSDate,还是不能为任何Objective调用类型方法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-29 11:52:26

[NSDate date]是用于构造NSDate对象的工厂方法。

如果您阅读指南“使用Swift与Cocoa和Objective”,就有一个关于与Objective交互的章节:

为了一致性和简单性,Objective工厂方法在Swift中被映射为方便的初始化器.此映射允许使用与初始化器相同的简洁、清晰的语法。“ 摘录自:苹果公司。使用Swift与Cocoa和Objective.iBooks。https://itun.es/gb/1u3-0.l

所以工厂的方法:

代码语言:javascript
复制
[NSDate date]

被转换为Swift中的初始化器。

代码语言:javascript
复制
NSDate()

不仅在NSDate中可以找到这种模式,还可以在其他Cocoa中找到工厂方法。

票数 79
EN

Stack Overflow用户

发布于 2014-10-29 11:14:18

NSDate()似乎是新的语法。以前,NSDate.date()工作过,

但是现在您应该使用NSDate()

票数 12
EN

Stack Overflow用户

发布于 2014-10-29 11:01:39

在Objective中,[NSDate date]只简单地调用[[NSDate alloc] init]。因此,您不需要在Swift中调用NSDate.date()。只需调用NSDate()就可以用当前日期初始化date对象。

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

https://stackoverflow.com/questions/26628562

复制
相关文章

相似问题

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