为什么使用 new() class 方法在 Swift 中创建对象无法编译?
Why using new() class method to create an object in Swift doesn't compile?
我不是 Objective-C 中的 new
的忠实粉丝。但是提出了疑问。为什么这不能编译?:
let j = NSNumber.new()
var s = NSString.new()
看起来 new()
是一个常规的 class 方法。虽然在 Apple 的文档中定义了名称 ??
class func `new`() -> Self!
所以,问题依然存在。如果 new()
存在于 NSObject 中,为什么不编译?文件雷达?
new
是保留关键字,您必须使用反引号将其转义。这将起作用:
let string = NSString.`new`()
但我建议使用 "Swift" 方式,因为它更短、更清晰并且适用于非 NSObject
类型:
let string = NSString()
我不是 Objective-C 中的 new
的忠实粉丝。但是
let j = NSNumber.new()
var s = NSString.new()
看起来 new()
是一个常规的 class 方法。虽然在 Apple 的文档中定义了名称 ??
class func `new`() -> Self!
所以,问题依然存在。如果 new()
存在于 NSObject 中,为什么不编译?文件雷达?
new
是保留关键字,您必须使用反引号将其转义。这将起作用:
let string = NSString.`new`()
但我建议使用 "Swift" 方式,因为它更短、更清晰并且适用于非 NSObject
类型:
let string = NSString()