【发布时间】:2014-06-24 18:32:13
【问题描述】:
想法是使用 Coredata 获取“类型化”数据。
更新
class func retrieve<T: AnyObject>(entityName:T.Type, sortBy:String? = nil, isAscending:Bool? = true, predicate:NSPredicate? = nil) -> AnyObject[] {
println("\(entityName)")
let request = NSFetchRequest(entityName: "Users")
request.returnsObjectsAsFaults = false
if predicate != nil {
request.predicate = predicate
}
if (sortBy != nil){
var sorter: NSSortDescriptor = NSSortDescriptor(key: sortBy , ascending: isAscending!)
request.sortDescriptors = [sorter]
}
var error: NSError? = nil
var fetchedResult = myDataModel.managedObjectContext.executeFetchRequest(request, error: &error)
if !error {
println("errore: \(error)")
}
println("retrieved \(fetchedResult.count) elements for \(entityName)")
return fetchedResult
}
现在,我上面写的在语法上是正确的,但我相信还有另一种方法可以做到这一点,也许更“容易”。我认为这个提议很明确:) 我试图从 entityName 输入参数中获取类名
以以下方式或类似方式调用此函数:
var xx = myDataModel.retrieve(Users.self)
在哪里
Users: NSManagedeObject
你有什么建议吗?
【问题讨论】: