为什么使用new()类方法在Swift中创建对象不能编译?

时间:2015-04-08 09:41:40

标签: swift initialization

我不是Objective-C中new的忠实粉丝。但this question提出了疑问。为什么这不编译?:

let j = NSNumber.new()
var s = NSString.new()

看起来new()是常规类方法。虽然在Apple的doc文件中定义了名称后面的嘀嗒声

class func `new`() -> Self!

所以,问题仍然存在。如果NSObject中有new(),为什么不编译?文件雷达?

1 个答案:

答案 0 :(得分:3)

new是一个保留关键字,您必须使用反引号将其转义。这将有效:

let string = NSString.`new`()

但我建议使用“Swift”方式,因为它更短,更干净,适用于非NSObject种类:

let string = NSString()
相关问题