【发布时间】:2018-02-16 09:56:09
【问题描述】:
在我的应用中,我希望允许用户在注册时给我一个显示名称,但如果他们不给我,我想使用他们的名字和姓氏首字母创建一个。
在我看来,这在某种程度上符合计算属性范式,但并不完全符合。我尝试在课堂上这样做:
var displayName: String {
get {
if (!self.displayName.isEmpty) {
return self.displayName
}
else {
let index = self.lastName.index((self.lastName.startIndex), offsetBy: 1)
return self.firstName + " " + self.lastName.substring(to: index)
}
}
set(displayName) {
self.displayName = displayName
}
}
但它在几个不同的地方坠毁。这是计算属性的正确情况,还是我应该只创建一个常规属性并检查 displayName.isEmpty 并将其设置为 firstname.lastinitial 如果是这种情况?
提前感谢。
【问题讨论】: