-6
我的代碼:繼承斯威夫特
dbManager = coreDataStack.managedContext as! DbManager
DbManger
類:
class DbManager: NSManagedObjectContext {
}
你能告訴我什麼,我錯過了什麼? coreDataStack
不是零,managedContext
不是零,但應用程序崩潰的鑄件。
我的代碼:繼承斯威夫特
dbManager = coreDataStack.managedContext as! DbManager
DbManger
類:
class DbManager: NSManagedObjectContext {
}
你能告訴我什麼,我錯過了什麼? coreDataStack
不是零,managedContext
不是零,但應用程序崩潰的鑄件。
你有一個基類的實例,NSManagedObjectContext
,你試圖將它轉換到它的子類DbManager
,但它不是一個。
繼承涉及的是一種關係。 A DbManager
實例是NSManagedObjectContext
,但反過來並不適用。
換句話說,你有一個類叫做Car
。然後,您繼承並擴展它以創建一個RocketCar
類。你不能只是實例化一個Car
並使用轉換將其轉換爲RocketCar
。
哦,現在我明白了。有什麼辦法可以通過這個參考? – Laxsion12
@ Laxsion12 [NSManagedObject的文檔](https://developer.apple.com/documentation/coredata/nsmanagedobjectcontext)有一個關於子類化的部分,該部分的開頭部分是「強烈建議不要繼承NSManagedObjectContext的子類」,所以我確實沒有想你想要。我相信這是一個[XY問題](http://xyproblem.info/)。你真的想做什麼? – Aehmlo
我想有DbManager裏面有其他DbManagers(NSObject子類)1 DbManager = 1實體在db中。它只是一個實體經理與保存,選擇等方法,你可以通過NSManageObjectContex子類管理器訪問所有這些經理 – Laxsion12