我正在迁移到Swift 3,并且在迁移抽象CoreData查询代码时遇到了非常奇怪的错误消息。entityName
传递给以下方法:
func objects(entityName name:String)->[NSManagedObject]? {
let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName:name)
var objects: [NSManagedObject]?
do {
objects = try managedObjectContext.fetch(fetchRequest)
} catch { ... }
}
这将导致以下错误:
无法使用类型为((NSFetchRequest <NSFetchRequestResult>)'的参数列表调用'fetch'预期为类型'(NSFetchRequest <NSFetchRequestResult>)'的参数列表
该错误说明我无法使用其期望的类型。在Swift 3中是否可以像这样对CoreData进行抽象调用?
帖子如何将类型应用于NSFetchRequest实例?是什么导致了我这么远。
我尝试进行投射fetchRequest
,但没有任何改变。managedObjectContext.fetch(fetchRequest as! NSFetchRequest<NSFetchRequestResult>)
试试这个:
do {
objects = try managedObjectContext.fetch(fetchRequest) as! [YourEntityName]
} catch {
print(error)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句