gpt4 book ai didi

swift - 未在集合上计算的计算属性

转载 作者:行者123 更新时间:2023-11-28 10:50:58 24 4
gpt4 key购买 nike

在我的应用中,我希望允许用户在注册时给我一个显示名称,但如果他们不给我,我想使用他们的名字和姓氏首字母创建一个。

在我看来,这有点符合计算属性范例,但不完全符合。我在类里面尝试这样做:

    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(如果是这种情况)?

提前致谢。

最佳答案

您的应用因循环问题而崩溃。

在你得到你有:

if (!self.displayName.isEmpty) {
return self.displayName
}

我建议你这样的解决方案:

class User {

private var compoundName: String
var displayName: String {
get {
guard !self.compoundName.isEmpty else {
return self.compoundName
}
if let firstLastNameChar = self.lastName.characters.first {
return return "\(self.firstName) \(firstLastNameChar)"
}
return self.firstName
}
set(displayName) {
self.compoundName = displayName
}
}

}

关于swift - 未在集合上计算的计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46100110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com