【发布时间】:2017-04-10 15:55:22
【问题描述】:
我想知道是否可以基于作为领域对象的类名的字符串来实例化领域对象,但在提供之前不知道该字符串是什么。
例如:
for(_, object) in json["AllObjects"]{
let objectType = self.getRealmObjectBasedOnString(type: className, params: object.stringValue)
self.objectList.append(objectType)
}
在这里,我浏览了一个我得到的 json,并希望从数组中的每个 json 对象创建一个领域对象。问题是这个方法会被多次调用,每次唯一会改变的是className变量。所以我想只在一个方法中保留这个逻辑,而不是创建多个具有相同逻辑的方法或一个巨大而复杂的 if else 来确定要创建的领域对象。
这里是getRealmObjectBasedOnString
func getRealmObjectBasedOnString(type: String, params: String) -> Object{
switch type {
case "classA":
return ClassA(JSONString: params)!
case "classB":
return ClassB(JSONString: params)!
default:
return DefaultClass(JSONString: params)!
}
}
有人可以解释为什么这不起作用以及是否有可能完成我想要的?
【问题讨论】:
标签: ios json swift swift3 realm