2012-08-13 51 views
0

背景:我已經創建了一個iPad數據庫(使用核心數據),現在我正致力於給這個數據庫上傳/下載到DropBox的能力。我遵循了DropBox網站上列出的所有步驟,並且可以成功上傳到DropBox並從DropBox下載。iPhone SDK:從Dropbox下載sqlite文件後,TableView不顯示數據

問題:文件從DropBox下載(稱爲「dataBase.sqlite」)後,我的應用程序不會更新以顯示下載文件中的數據。但是,如果我通過雙擊HOME按鈕關閉應用程序,然後重新啓動應用程序,則所有數據現在都能正確顯示。

我希望在下載完成後在我的iPad上進行數據更新/顯示,而無需關閉並重新啓動應用程序。任何建議將不勝感激。

嘗試:[managedObjectContext reset];

,並試圖:

managedObjectContext=nil; 
managedObjectModel=nil; 
persistentStoreCoordinator=nil; 

我使用了以下內容: 的XCode 4.4.1 山獅10.8 的Dropbox SDK

回答

0

您可能已經嘗試過這一點,但是一旦您檢測到數據庫文件的新版本已經下載,並且在您將其處理到您的Core Data結構中之後,您是否還記得[tableView reloadData]

+0

感謝您的快速回復。是的,我嘗試過,但沒有幫助。 – Imagine09 2012-08-13 23:02:27

0

您的問題困惑我。

您似乎是從包含數據綁定的WPF思維推理出來的。重置您的數據源(不是核心日期對象,如nsmanagedobject),但在table.datasource設置的對象

您似乎認爲該表直接從managedObjectContext獲取其數據。這是我不知道的iOs中的一個功能,或者您正在削減一個主要角落。

您負責實現一個符合UITableviewDatasource的對象,該對象知道在哪裏獲取數據(您的managedObjectContext最有可能),並使其可用於UITableView。說,從Dropbox的下載

後,最低限度你需要重新加載發送到您的UITableView

[table reloadData]; 

最有可能你需要讓你的數據源對象知道爲好,它需要「重新讀取」​​的數據。 (可選地,這是一個實時連接,在每次訪問時更新)。

+0

文森特,是的,我已經嘗試[表reloadData]以及[自我fetchedResults]。還試過設置self.fetchedResults = nil;在運行[self fetchedResults]之前; ...不工作。 – Imagine09 2012-08-13 23:13:41

+0

Edites原來的答案 – Vincent 2012-08-14 04:06:16

1

終於拿到通過執行以下操作這方面的工作:從協調者和文件管理器

  1. 擦除persistentStore(前 文件下載)
  2. 下載新的文件
  3. 重新persistentStore
  4. FetchedResults

thx