gpt4 book ai didi

ios - swift 。通过字符串名称引用实例变量

转载 作者:行者123 更新时间:2023-11-28 08:33:45 25 4
gpt4 key购买 nike

我在用户 View Controller 类中有许多用户属性,即

//user vars
var email: String?
var givenName: String?
var familyName:String?
var phone: String?
var dob: NSDate?

在该类的一个方法中,我从 coredata 中检索用户数据,并在循环中使用该数据设置用户文本字段

for i in 0 ..< userTextFields.count {
let field = userTextFields[i]
let fieldName = userTextFieldKeyNames[i]
let fieldText = currentUser.valueForKey(fieldName) as? String
field.text = fieldText
}

循环中的 fieldName 变量与上面类的 ivars 相匹配。有没有一种方法可以通过将它与 fieldName 字符串匹配来引用循环中的 ivars,这样我就可以使用获取的核心数据值设置 ivars 的值,即从字面意义上说,如下所示......

if self.property.name.text == fieldName {
self.property.value == fieldText
}

即以某种方式解析类中的各种属性名称……或者这是糟糕的设计? ....如果有任何关于以更好的方式实现相同结果的建议

最佳答案

不是 Swift-ish,因为它绕过了编译时类型检查。最好的选择是将它们全部保存在字典中,并使用协议(protocol)在字典中定义允许的数据类型,但即使这样也很差

关于ios - swift 。通过字符串名称引用实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318093/

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