2016-10-25 17 views
0

私は、CoreDataからデータを取得するためにテーブルビューコントローラでレイジーvarを使用していました。それはswift2でうまくいっていた。しかし、私がSwift3にアップグレードしたとき、以下のようなエラーが表示されました。親切に私はSwift3Ios Swift3:エラーを示すlazy var fetchrequestcontroller

エラーのために変更するのに役立つ:指定した型にスウィフト3.0では「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 
}() 
+0

あなたは試してみましたか? http://stackoverflow.com/questions/39816877/lazy-var-nsfetchedresultscontroller-producing-error-in-swift-3-0 – dirtydanee

+0

すべての変数は 'camelCase'にある必要があります。読みやすくするために、ローカル変数にはより一般的な名前を付けるべきです。私はそれをきれいにして、私が何を話しているかを見ることができます。 – Adrian

答えて

1

を型「エラー」の値を変換できません、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 
}()