在swift中重复检查和操作

时间:2015-09-24 04:53:01

标签: ios swift

我在Swift中有以下代码:

$inputs = Input::get('pj');
foreach($inputs as $input){
   if(DB::table('order_detail')->insert($input)){}
   else{
      return Redirect::back()
        ->with('message','something went wrong')
        ->withInput();
      }
}
Redirect::route('admin.order_detail.index')
              ->with('message','success');

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

感谢。

1 个答案:

答案 0 :(得分:0)

如果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次检查,但您可以自己做。