gpt4 book ai didi

ios - 处理 iOS 上 Core Data 数据库的频繁更新和请求的最佳实践?

转载 作者:行者123 更新时间:2023-11-29 04:53:44 26 4
gpt4 key购买 nike

我正在构建一个应用程序,需要从许多 http 源收集数据。有时,这些源的计数可能最终为 700,总共 35 MB。

为了避免每次需要时都下载数据并避免向用户收取大量费用,我认为最好在第一遍之后将结果存储到 SQLite Core Data 数据库中,然后执行根据需要在本地请求。

我没有寻找在存储下载数据时避免崩溃的最佳方法。我使用最多 7 个 http 同时请求的操作队列下载数据,我担心在同时从 2 个线程访问相同的托管对象上下文时可能会遇到崩溃,并且由于我们正在讨论存储在数据库中的物理磁盘访问,事情可能会变得复杂。

我只是想知道存储此类数据然后在其中执行快速搜索的良好做法,而不会导致应用程序因多线程问题而一直崩溃。

提前谢谢你。

最佳答案

不应有 2 个线程访问同一个 NSManagedObjectContext。每个线程都应该有自己的 NSManagedObjectContext 并且您应该在必要时使用 mergeChangesFromContextDidSaveNotification: 合并上下文。 。多线程和核心数据可能很棘手,因此您需要在这上面交叉所有的 T 并点上所有的 I,但这应该是可能的。 iOS5 为 NSManagedObjectContext 带来了一些更好的多线程支持,包括锁定等,但我还不熟悉它,还没有详细说明,但请看一下 Managing Concurrency如果您的目标是 iOS5,则类引用的部分,iOS5 之前的任何内容都需要有多个 MOC。

此外,我相信在蜂窝网络上时,iOS 会限制设备同时最多有 2 个并发 HTTP 请求。

关于ios - 处理 iOS 上 Core Data 数据库的频繁更新和请求的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com