Ios Swift3:懒惰的 var fetchrequestcontroller 显示错误

Ios Swift3 : lazy var fetchrequestcontroller showing an error

我在 table 视图控制器中使用惰性变量从 CoreData 获取数据。它在 swift2 中运行良好。但是当我升级到 Swift3 时,它显示如下错误。请帮我换成 Swift3

Error : Cannot convert value of type 'Error' to specified type '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
}()