有人知道这是否可行或可取吗?
我想创建一个可以循环访问 Core Data 中的值的类。初始化类时,用户将指示每个属性/列的名称和类型。
我希望我可以按照下面指出的方式为变量赋值。
但是,当我尝试为变量动态分配类型时出现问题,在下面的最后一段代码中可见(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
}
最佳答案
考虑像下面这样使用泛型:
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)
}
关于xcode - 在 Swift 中动态分配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299889/