【问题标题】:multi-row sqlite db update in iOS CoreDataiOS CoreData中的多行sqlite db更新
【发布时间】:2012-09-25 20:30:23
【问题描述】:

我正在使用带有 UITableView 的 NSFetchedResultsController 从底层 sqlite 数据库中呈现 iOS 应用程序中的数据。在应用程序流程中的某些点,我需要从单独的控制器更新数据库多行中的标志。

我不认为遍历所有对象,更改标志,然后重新保存是理想的。

有没有最好的方法来做到这一点?

【问题讨论】:

    标签: ios sqlite core-data


    【解决方案1】:

    你可以这样做。

    1. 将获取的控制器退出为委托(非常重要)
    2. 对 CoreData 执行更改并保存上下文
    3. 再次分配获取的控制器委托并再次执行获取
    4. 调用reload table,只会更新可见行

    您可以使用有关保存和更改上下文的常用 CoreData 通知来处理此问题。 您可以执行任何您想要的操作,只有在保存上下文时才会通知他们。

    【讨论】:

    • 听起来很合理。我想在步骤 2 中进行的更改会影响update mytable set myflag=2 where myflag==1 对表中大约一千行的影响。你会通过一次迭代一个 NSManagedObjects、直接访问 db 文件并执行 sql 更新,还是通过另一种机制来做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2011-01-22
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多