gpt4 book ai didi

ios - 核心数据 : Sync data from Rest API

转载 作者:行者123 更新时间:2023-11-28 13:55:35 24 4
gpt4 key购买 nike

我从 Rest API 请求数据,然后将它们保存到包含核心数据的数据库中。

First API Result

  1. A
  2. B
  3. C

Second API Result

  1. A
  2. C

我们应该删除“B”,因为它已从 API 结果中消失。目前我们在添加新数据之前删除表中的所有数据,但这看起来不对。

我的问题是如何检测删除的数据并以最少的 CPU 开销在数据库中删除它们?

我可以选择核心数据存储类型(内存sqlite)并且不能使用 NSBashRequest

最佳答案

当我必须这样做时,我通过获取不在新传入数据集中的所有内容并删除获取结果中的所有内容来完成。这仅在您拥有某种唯一 ID 时才有效——如果您的 ABC 是不具有唯一 ID 的唯一 ID有重复。

代码应该是这样的

  1. 首先获取在新传入数据中找到的所有唯一 ID。如果传入的对象在一个名为 restResults 的数组中,这将类似于

    NSArray *incomingUniqueIDs = [restResults valueForKey:@"uniqueID"];
  2. 使用谓词执行提取请求,该谓词查找具有唯一 ID 但在新列表中的所有内容。有点像

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"uniqueID not in %@", incomingUniqueIDs];

然后执行提取并删除它找到的所有内容。在您的情况下,第二次 incomingUniqueIDs 将包含 AC。谓词只会获取 B。您将删除该条目,然后就完成了。

关于ios - 核心数据 : Sync data from Rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53914376/

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