2016-12-22 83 views
0

創建NSFetchRequest時,如下所示創建時無法初始化(在調試器中返回<未初始化的>)。爲什麼NSFetchRequest不能初始化?

let request: NSFetchRequest<NSFetchRequestResult> = EntityName.fetchRequest() 

然而,它完美的作品時,像這樣創建:

let request: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "EntityName") 

誰能告訴我,爲什麼它會工作的底部而非頂部?頂級方式在其他三個使用它的類中完美運行。

+0

讓利請求:NSFetchRequest = YourClass.fetchRequest ...這個shuld解決它 –

+0

感謝您的評論,但由於代碼的結構,我不能使用NSFetchRequest的具體情況,因爲我的NSFetchedResultsController是一個更多的繼承屬性普通班。 – Jase

+0

我現在已經完全轉向使用底部方法,因爲我已經使結構更一般化了,但我仍然想知道爲什麼頂級方法在我使用過的每個其他類上工作,而且他們非常多完全相同的副本(唯一不同的是類字段,以及'prepare(for:segue)'中的一些不同的代碼)。 – Jase

回答

0

我一直有同樣的問題,呼籲測試目標NSManagedObject.fetchRequest(),但我可以通過調用它塊內部的管理對象上下文的perform(_:)方法來解決它,就像這樣:

context.perform { 
    let request = EntityType.fetchRequest() 
    (...) 
} 
相關問題