我创建了一个辅助函数来使用支持iOS 9.0+的Swift 3加载NSManagedObject
。无法使用类型为'(NSFetchRequest <NSFetchRequestResult>)'的参数列表调用'fetch'
class func loadContext(entityName: String, fetchConfiguration: ((NSFetchRequest<NSManagedObject>) -> Void)?) -> AnyObject? {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
// Fetch requested data
let dataFetchRequest = NSFetchRequest<NSManagedObject>(entityName: entityName)
// Configure the fetch request with user parameters
if fetchConfiguration != nil {
fetchConfiguration!(dataFetchRequest)
}
do {
return try appDelegate.managedObjectContext.fetch(dataFetchRequest as! NSFetchRequest<NSFetchRequestResult>)
} catch {
print("Failed to fetch feed data, critical error: \(error)")
}
return nil
}
不过,我得到以下错误:
Cannot invoke 'fetch' with an argument list of type '(NSFetchRequest<NSFetchRequestResult>)'
我自己也尝试几个变种,如具有let dataFetchRequest = NSFetchRequest<NSFechRequestResult>(entityName: entityName)
,他们都遇到了同样的错误。
我遇到了完全相同的问题。你有没有找到解决方案? Swift 3中不允许泛型调用? – dmorrow