【发布时间】:2017-02-08 08:13:42
【问题描述】:
我正在迁移到 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
)”类型的参数列表调用“fetch” 需要一个类型为“(NSFetchRequest )”的参数列表
错误是说我不能使用它所期望的类型。 是否可以在 Swift 3 中像这样对 CoreData 进行抽象调用?
How to apply the type to a NSFetchRequest instance? 的帖子让我走到了这一步。
我尝试投射fetchRequest,但它并没有改变任何东西。
managedObjectContext.fetch(fetchRequest as! NSFetchRequest<NSFetchRequestResult>)
【问题讨论】:
标签: ios swift core-data swift3 xcode8