我与Bloc.io Swiftris tutorial一起跟踪,他们通过以下方式初始化日期:
lastTick = NSDate.date()它会导致编译错误:
'date()' is unavailable: use object construction 'NSDate()'其中应相等于:
NSDate *lastTick = [NSDate date];(来自NSDate reference)
苹果是否改变了Swift interface to NSDate,因为我见过其他使用NSDate.date的例子?
这仅仅是NSDate,还是不能为任何Objective调用类型方法?
发布于 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
所以工厂的方法:
[NSDate date]被转换为Swift中的初始化器。
NSDate()不仅在NSDate中可以找到这种模式,还可以在其他Cocoa中找到工厂方法。
发布于 2014-10-29 11:14:18
NSDate()似乎是新的语法。以前,NSDate.date()工作过,
但是现在您应该使用NSDate()
发布于 2014-10-29 11:01:39
在Objective中,[NSDate date]只简单地调用[[NSDate alloc] init]。因此,您不需要在Swift中调用NSDate.date()。只需调用NSDate()就可以用当前日期初始化date对象。
https://stackoverflow.com/questions/26628562
复制相似问题