我對Core Data還是比較新的,並且試圖理解爲什麼它需要傳遞一個NSManagedObjectContext。據我所知,傳遞上下文是需要的,以便多個線程不會影響相同的上下文,但我也覺得這種模式有時被認爲是反模式,如here。上下文模式?爲什麼Core Data需要它?
核心數據理論上可以以避免使用這種模式的線程安全方式實現嗎?其他ORM(例如Ruby的ActiveRecord)如何避免這種模式?例如,CoreData不能實現每個NSManagedObject保存方法,例如在extension中。這個輕量級框架並不處理多線程,但是NSManagedObjects不能使用某種內部GCD隊列來支持它,並且不會暴露內部上下文嗎?
對不起,如果我錯過了任何重大事件。
+1爲好問題。我知道,大背景往往被視爲反模式,但在我看來,蘋果並沒有濫用它,就像一個初級程序員通過屋頂瓦片只是爲了衝入浴室廁所一樣。 NSManagedObjectContext確實管理很多事情,但通過方法,並不要求你的所有實體一次可用,或者2個實體共享相同的模型來相互瞭解。 – Joe