2012-10-04 53 views
0

我正在使用帶有UITableView的NSFetchedResultsController在底層sqlite數據庫中顯示iOS應用程序中的數據。在應用程序流的某些點上,我需要從單獨的控制器更新數據庫多行中的標誌。iOS中的多行sqlite數據庫更新CoreData

我不認爲迭代通過所有的對象,改變國旗,然後resaving是理想的。

有沒有最好的方法來做到這一點?

回答

0

你可以這樣做。

  1. 辭職獲取控制器代表(非常重要)
  2. 執行變更CoreData和保存方面
  3. 指定再次獲取控制器代表和執行取再次
  4. 呼叫重裝表,唯一可見的行會已更新

您可以使用通常的關於保存和更改上下文的CoreData通知來處理此問題。 您可以執行任何您想要的操作,只有在保存上下文時纔會通知他們。

+0

聽起來很合理。我想在第2步中做出的更改與「更新mytable set myflag = 2 where myflag == 1」對錶中大約一千行的影響有關。你會通過一次遍歷NSManagedObjects,直接訪問數據庫文件並執行sql更新,或通過其他機制來實現這一點嗎? – wrightcode