gpt4 book ai didi

ios - 快速重复检查和操作

转载 作者:行者123 更新时间:2023-11-30 14:03:01 28 4
gpt4 key购买 nike

我在 Swift 中有以下代码:

    var changed = false

if property1 != obj.property1 {
property1 = obj.property1
changed = true
}

if property2 != obj.property2 {
property2 = obj.property2
changed = true
}

... until property n

return changed

有没有办法让这个更简洁地说我知道我想要检查的所有属性,假设我有一个数组= ['property1', 'property2', .. 'propertyN']。我是 swift 新手,我知道在 C# 中我会使用反射。

谢谢。

最佳答案

如果obj继承自NSObject,你可以执行如下操作:

var value = obj.valueForKey('property1');

可以通过以下方式设置该值:

obj.setValueForKey('property1', valueObject);

编辑假设您想使用一些讨厌的代码,您可以使用如下内容:

var obj = NSObject();
var selfObj = NSObject();

let propertyNames = ["property1", "property2"];
var changed = false

for property in propertyNames {
if obj.valueForKey(property) != nil {

let selfValue = selfObj.valueForKey(property) as! NSObject
let objValue = obj.valueForKey(property) as! NSObject

if selfValue != objValue {
selfObj.setValue(objValue, forKey: property)
changed = true
}
}
}

需要更多的nil检查,但你可以自己做。

关于ios - 快速重复检查和操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32753607/

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