Ios Swift3: lazy var fetchrequestcontroller显示错误



我在表视图控制器中使用lazy var从CoreData获取数据。它在swift2中运行良好。但是当我升级到Swift3时,它显示了如下错误。请帮我换一下Swift3

错误:无法将类型'Error'的值转换为指定类型'NSFetchedResultsController'

lazy var fetchedResultsController: NSfetchedResultsController =
{
    let fetchRequest = NSFetchRequest(entityName: "EvtIvtTbl")
    let sortDescriptor = NSSortDescriptor(key: "bym_kol", ascending: true)
    fetchRequest.sortDescriptors = [sortDescriptor]
    let fetchedResultsController = NSfetchedResultsController(fetchRequest: fetchRequest,
                                                     managedObjectContext: self.managedObjectContext,
                                                     sectionNameKeyPath: nil,
                                                     cacheName: nil)
    fetchedResultsController.delegate = self
    return fetchedResultsController
}()

在Swift 3.0中,NSFetchedResultsControllerNSFetchRequest需要类型参数。假设EvtIvtTbl是您的NSManagedObject子类,您的代码应该如下所示:

lazy var fetchedResultsController: NSFetchedResultsController<EvtIvtTbl> = {
    let fetchRequest = NSFetchRequest<EvtIvtTbl>(entityName: "EvtIvtTbl")
    let sortDescriptor = NSSortDescriptor(key: "bym_kol", ascending: true)
    fetchRequest.sortDescriptors = [sortDescriptor]
    let fetchedResultsController = NSFetchedResultsController<EvtIvtTbl>(fetchRequest: fetchRequest,
                                                 managedObjectContext: self.managedObjectContext,
                                                 sectionNameKeyPath: nil,
                                                 cacheName: nil)
    fetchedResultsController.delegate = self
    return fetchedResultsController
}()

相关内容

  • 没有找到相关文章

最新更新