我试图让我了解可选对象,比如说我有以下 class :
class Contact {
var displayName:String
init(displayName:String) {
self.displayName = displayName
}
}
class Contacts {
func create(displayName:String) -> Contact {
return Contact(displayName: displayName)
}
}
如您所见,Contact类具有一个字段displayName,但是此值在初始化时可以为nil。
因此,要初始化此类,我通常会这样做:
let contact = Contact(displayName: "Test Name")
但相反,我也希望能够做到这一点:
let contact = Contact()
要么
let contact = Contacts().create()
最佳答案
您可以将init参数设置为可选的String?
,默认情况下
值nil
:
class Contact {
var displayName: String?
init(displayName: String? = nil) {
self.displayName = displayName
}
}
let contact1 = Contact()
let contact2 = Contact(displayName: "John")
Contacts
类的工作原理也相同:class Contacts {
func create(displayName: String? = nil) -> Contact {
return Contact(displayName: displayName)
}
}
let contacts = Contacts()
let contact3 = contacts.create()
let contact4 = contacts.create("Mary")
关于ios - Swift如何使用nil属性创建和测试对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36903472/