在另一個問題(Accessing an NSApplications delegate in another class?)中,我詢問有關調用應用程序的委託,因爲我需要它的managedObjectContext作爲獲取請求。但是,當我嘗試讓應用程序啓動時在NSTableView中顯示所有值時,我遇到了問題。 DataController,我的NSTableViewDataSource,在我的應用程序委託調用它的applicationWillFinishStartup或任何其他方法來初始化managedObjectContext之前調用它的init方法。我究竟做錯了什麼?我還可以用已有的對象填充NSTableView嗎?在應用程序啓動時執行NSFetchRequest
0
A
回答
1
只能通過其吸氣器訪問managedObjectContext
,即使是從DataController
,如[appDelegate managedObjectContext]
或appDelegate.managedObjectContext
也是如此。
您的managedObjectContext
方法應自動設置託管對象上下文;你不應該在你的applicationDidFinishLaunching
等中寫明確的moc設置例程。標準的核心數據模板就是這樣編寫的。
現在,爲了這個工作,應用代理需要從DataController
的角度來正確設置。但是,在設置所有IBOutlet
之前調用init
,所以這是在筆尖內執行對象設置操作的錯誤位置。相反,使用awakeFromNib
來做這些事情。 awakeFromNib
等等全部設置後發送給每個對象。
這就是說,寫自己的DataController
是完全浪費時間。只需在nib文件中實例化標準NSArrayController
,並通過綁定在覈心數據模式中使用它。您絕對不需要自己編寫獲取請求。研究蘋果公司自己的CoreData示例代碼,然後谷歌「綁定CoreData教程」可以在線獲得許多教程。
相關問題
- 1. 在啓動時運行應用程序
- 2. 在啓動時啓動應用程序
- 3. 在啓動時啓動應用程序
- 4. 如何在應用程序啓動時執行彙編代碼
- 5. 在首次啓動時執行應用程序指令
- 6. 如何在應用程序啓動時執行代碼
- 7. 在應用程序啓動時執行一個類Objective-C
- 8. 在應用程序啓動時執行某些操作?
- 9. Sinatra:在啓動或重新啓動我的應用程序時執行代碼
- 10. 在應用程序啓動時使用PFUser.currentUser()執行自動排序
- 11. 應用程序正在啓動,沒有行正在執行
- 12. 應用程序啓動時應用程序類不運行?
- 13. 計時器在應用程序啓動時自動啓動
- 14. 如何在第一次啓動時執行Android應用程序時的操作
- 15. 在Windows啓動時啓動應用程序啓動
- 16. 在程序啓動時在後臺執行動作
- 17. 啓動後立即在Win CE中執行.net應用程序
- 18. iPad:在應用程序啓動時啓動外部應用程序
- 19. 在rails應用程序重啓時執行腳本的腳本
- 20. 如何防止在應用程序啓動時在onResume中執行代碼?
- 21. 啓動應用程序時啓動屏幕時應用程序已停止
- 22. 如何在系統啓動時自動運行應用程序?
- 23. 春季啓動應用程序時,掛在命令行運行
- 24. Visual Studio在應用程序啓動時進行遠程調試
- 25. 在應用程序啓動時運行python-rq工作進程
- 26. 彈簧集成 - 在應用程序啓動時運行流程
- 27. 如何在應用程序運行時啓動進程?
- 28. 執行PS在啓動時
- 29. 在啓動應用程序
- 30. 在應用程序啓動
我已經將我的項目作爲zip文件上傳到了Dropbox。我希望它可以幫助:http://dl.dropbox.com/u/22139493/Shop%20Helper.zip在執行此操作之前,您可能希望在db中創建一些條目,因爲我刪除了一些行,每次添加一個新條目應用程序啓動 –
好的,我會相應地重寫我的答案。 – Yuji
謝謝。但是,我的應用程序旨在成爲核心數據的第一步,而不是真正具有特定用途。無論如何,謝謝你的提示 –