我有一個DatabaseManager類,它處理在我的應用程序中創建和打開數據庫,並在需要時發送「上下文」。問題是openWithCompletionHandler
是異步的,所以openDatabase調用立即返回,然後我的初始視圖控制器崩潰試圖從沒有打開的數據庫中獲取數據。我是否正確地打開我的數據庫?
我的解決方案是將初始VC傳遞給openDatabase方法,並將它從完成處理程序代碼塊中調回到VC中。所以我最初的VC基本上調用DatabaseManager來打開數據庫,然後坐着等待,直到它接到一個回調,然後獲取顯示所需的數據。
它工作正常,數據出現時沒有明顯的延遲。
這是正常的做法嗎?我想學習最好的方法,而不是陪審團操縱一些有用的東西。我嘗試了各種搜索並閱讀Apple文檔,但無法找到答案。如果我錯過了文檔中顯而易見的內容,請在那裏指出我的位置。
謝謝!
謝謝。良好的反饋。 –
非常歡迎。有可能的改進是異步進程不需要知道任何關於主對象(它的類或它的方法)。例如,您可以使用協議和真正的委託架構;或者不是交給自己的引用,你可以交給Objective-C塊。但是,你在做什麼沒有任何問題。 – matt