我創建了一個輔助函數來使用支持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