2016-11-22 10 views
0

私はSwiftアプリケーションを3.0に変換していますが、残っている問題が1つあります。私はNSFetchedResultControllerが現在一般的でありコードを修正したが、まだ悪名高い "セミコロン"エラーを取得しているすべての指示を読んだ。iOS10/SwiftのNSFetchedResultsController 3 - 変換後にエラーメッセージが表示される

オリジナルコード:私が変更された

fileprivate lazy var jobController:NSFetchedResultsController = {() -> <<error type>> in 
     let request = NSFetchRequest(entityName: AGJobData.entityName) 
     request.sortDescriptors = [NSSortDescriptor(key: "jobNumber", ascending: true), NSSortDescriptor(key: "name", ascending: true)] 
     let controller = NSFetchedResultsController(fetchRequest: request, managedObjectContext: AGDataManager.sharedManager.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) 
     var error:NSError? = nil 
     controller.performFetch(&error) 
     controller.delegate = self 
     return controller 
     }() 

(手動、XCodeのコンバータは、コードのこの部分には触れませんでした):

fileprivate lazy var jobController:NSFetchedResultsController<AGJobData>= {() -> <<error type>> in 
    let request = NSFetchRequest<AGJobData>() 
    request.sortDescriptors = [NSSortDescriptor(key: "jobNumber", ascending: true), NSSortDescriptor(key: "name", ascending: true)] 
    let controller = NSFetchedResultsController(fetchRequest: request, managedObjectContext: AGDataManager.sharedManager.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) 
    var error:NSError? = nil 
    controller.performFetch(&error) 
    controller.delegate = self 
    return controller 
    }() 

任意の更なるアイデア?

答えて

1

エラー処理も変更されています。

fileprivate lazy var jobController : NSFetchedResultsController<AGJobData> = {   
    let request = NSFetchRequest<AGJobData>() 
    request.sortDescriptors = [NSSortDescriptor(key: "jobNumber", ascending: true), NSSortDescriptor(key: "name", ascending: true)] 
    let controller = NSFetchedResultsController(fetchRequest: request, managedObjectContext: AGDataManager.sharedManager.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) 
    controller.delegate = self 
    do { 
     try controller.performFetch(&error) 
    } catch { 
     print(error) 
    }  
    return controller 
}() 

それはあなたが文字列リテラルは、エンティティの名前でなければなりません

let request = NSFetchRequest<AGJobData>(entityName: "AGJobData") 

NSFetchRequest行を変更する必要がある可能性があります。

+0

ありがとうございました。あまりにも速く答えを期待していませんでした!ミュンヘンからのご挨拶 –

関連する問題