我已經編寫代碼,遠程更新我的iPhone應用程序中的SQLite數據庫。新數據庫下載並保存後,它將使用[NSFileManager removeItemAtPath:DBPath]和替換舊數據庫[NSFileManager copyItemAtPath:newDBTempPath to:DBPath]。所有這些操作都順利進行。但是,當我之後打開新的數據庫時,如果沒有關閉應用程序並運行一個查詢,我有時只會得到1個結果(我期望的807中的第一個),有時沒有結果。查詢運行時沒有任何錯誤。
然後,當我關閉(關閉)應用程序並重新打開時,相同的查詢將我的807結果返回給我
。這既發生在模擬器上,也發生在真實的iPhone上。幫助w /遠程更新sqlite數據庫
我會做什麼錯?
謝謝!
UPDATE 1:在編程時出現錯誤。現在,當我在Navicat中打開新複製的數據庫時,出現錯誤,下載時出現問題。
UPDATE 2:固定!爲了節省內存,我將每個下載的100KB塊寫入文件,但忘記在NSURLConnection完成時寫入最後一個塊。這導致了一個不完整的文件,DOH!
感謝您的快速回復。 我很確定數據庫是關閉的,更新文件的過程發生在加載的第一個(也是唯一的)視圖控制器中。只有在更新後,用戶才能選擇加載第二個視圖控制器,然後使用該數據庫。 另外,一切都很好,如果應用程序關閉並重新打開 – 2011-02-28 16:00:14