我想知道做managedObjectContext
的最佳做法是什麼。當我第一次在今年早些時候開始學習swift/iOS/Xcode時,我在ViewControllers/TableViewControllers的每個類中都放了這行代碼。我應該爲每個ViewController創建一個新的managedObjectContext Swift
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
,一切都正常工作。但後來我認爲我在某個時候讀了一些說,對每個ViewController/TableViewController使用相同的managedObjectContext
。我解釋這意味着發送我的原始moc變量到每個ViewController/TableViewController。爲此,我開始在'prepareForSegue'函數中發送它。所以只有第一個視圖具有上面的代碼,而其他所有的只有var moc: NSManagedObjectContext?
,它們將從prepareForSegue
函數中設置。
但我學得越多,我開始覺得AppDelegate中創造實際managedObjectContext
和let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
線路只設置該managedObjectContext
到商務部變量,而不是實際進行新managedObjectContext
。
所以我應該繼續使用prepareForSegue
函數將我的moc變量發送到所有鏈接的ViewControllers/TableViewControllers,或者我應該不用擔心它,並且使用頂部的代碼來設置它?
謝謝。
你幾乎肯定是對AppDelegate中創建一個對象,並通過你的參考是正確的。 **然而,在我看來,視圖控制器真的不應該知道如何獲取數據的機制。您可能需要查看MVC結構,其中Model對象負責數據和控制器與之通信,發送更改並接收當前狀態。 –
如果你有興趣,你可以看看https://realm.io/news/slug-marcus-zarra-exploring-mvcn-swift/簡要地提到處理'managedObjectContext'的不同方法,但是談到你關於應用程序體系結構的更大問題。 – beyowulf
謝謝,我一定會那樣做! –