有人知道这是可行的还是可取的?
我想创建一个可以循环核心数据中的值的类。初始化类时,用户将指出每个属性/列的名称和类型。
我希望我能以下面指出的方式为变量赋值。
但是,当我尝试动态地为变量分配类型时会出现问题,在下面的代码的最后一位( as col.type )中可见。我知道这可能看起来有点笨拙,但我正在尝试与任何事情进行沟通我想做什么。
课程定义:
class TargetColumnDetail {
var columnNameCore:String!
var columnNameParse:String!
var type:NSObject.Type!
init(){}
}
初始化:
var col: TargetColumnDetail = TargetColumnDetail()
col.columnNameCore = "name"
col.columnNameParse = "name"
col.type = NSString.self
我的想象如何使用:
for col:TargetColumnDetail in self.targetColumnDetails{
var coreValue = coreDataObject.valueForKey(col.columnNameCore) as col.type
}
答案 0 :(得分:0)
考虑使用类似于以下内容的泛型:
class TargetColumnDetail<T> {
var columnNameCore:String!
var columnNameParse:String!
func valueForKey(coreDataObject:NSManagedObject)->T{
return coreDataObject.valueForKey(col.columnNameCore) as T
}
}
然后使用如下
for col:TargetColumnDetail in self.targetColumnDetails{
var coreValue = col.valueForKey(coreDataObject)
}