Swift 3 / XCode 8 NSManagedObjectContext.fetch错误 [英] Swift 3/XCode 8 NSManagedObjectContext.fetch error

查看:242
本文介绍了Swift 3 / XCode 8 NSManagedObjectContext.fetch错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在迁移到Swift 3,并在迁移抽象CoreData查询代码时遇到一个非常奇怪的错误消息。 entityName 传递给以下方法:

I am migrating to Swift 3 and have come across a very strange error message while migrating abstract CoreData query code. entityName is passed to the following method:

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>)'
期望的类型为'(NSFetchRequest< NSFetchRequestResult>)'的参数列表

Cannot invoke 'fetch' with an argument list of type '(NSFetchRequest<NSFetchRequestResult>)' Expected an argument list of type '(NSFetchRequest<NSFetchRequestResult>)'

错误是说我不能使用其期望的类型。
是否可以像这样在Swift 3中对CoreData进行抽象调用?

The error is stating I can't use the type its expecting. Is it possible to make abstract calls to CoreData like this in Swift 3?

帖子 Swift 3,NSFetchrequest

我尝试了 fetchRequest ,但它没有改变任何东西。
managedObjectContext.fetch(fetchRequest as!NSFetchRequest< NSFetchRequestResult>)

I tried to cast fetchRequest, but it didn't change anything. managedObjectContext.fetch(fetchRequest as! NSFetchRequest<NSFetchRequestResult>)

推荐答案

尝试:

do {
    objects = try managedObjectContext.fetch(fetchRequest) as! [YourEntityName]
  } catch {
  print(error)
}

这篇关于Swift 3 / XCode 8 NSManagedObjectContext.fetch错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆