2010-02-01 136 views
0

我在我的iPhone應用程序中使用SQLITE數據庫。我的主屏幕上有一個刷新按鈕,單擊該刷新按鈕時,我通常會從我的Web服務中獲取數據並將其存儲到我的數據庫中。在正常的情況下,它工作正常,但當我經常點擊我的刷新按鈕4-5次我的應用程序崩潰,我的應用程序日誌顯示「無法打開數據庫」我不知道爲什麼我得到這個SQLLITE錯誤。在SQLITE數據庫中插入行數是否有限制?無法打開數據庫SQLITE iPhone

回答

2

聽起來好像您的應用程序正在從webservice下載數據,將其寫入數據庫,然後在頻繁按下按鈕時重複這些步驟。

根據您的應用程序的架構,您可能會嘗試從不同的線程向數據庫寫入數據 - 這是sqlite庫禁止的。

沒有看到一些代碼,沒有辦法告訴發生了什麼。

理想情況下,你應該寫你的數據庫設置隊列,並在可可/可可觸摸這可以通過使用NSOperationNSOperationQueue可以輕鬆實現。使用這些類可以封裝下載數據的行爲,將其解析爲模型對象並將其寫入數據庫,然後將其放入不同的「操作」中,然後將其放入隊列中。您還可以設置依賴關係,以便一個操作在另一個操作尚未完成時不會運行。所有這些都是可配置的。

請記住,雖然使用NSOperation進入多線程世界,並且如果您在任何時候更新用戶界面,您需要在主線程上執行它,因爲UIKit不是線程安全的。