gpt4 book ai didi

iphone - 如何检查 NSSet 或 NSCountedSet 中是否存在现有项目?

转载 作者:行者123 更新时间:2023-12-03 17:45:47 26 4
gpt4 key购买 nike

我目前正在将模型对象填充到 NSSet 中(也许我应该使用 NSCountedSet)。模型应该是独一无二的。我所做的就是从 Web 服务中提取它们,然后在客户端实例化它们并将它们添加到集合中。

我的问题如下:有时我只会拉出一个模型并将其添加到集合中,例如说我有法拉利的库存。因此,我会要求我的服务器为我拉一辆特定的法拉利,因为有人从库存中单击该法拉利的详细 View 。单独的法拉利细节 View 将列出该车型可用的所有不同油漆。因此,一旦用户深入了解此法拉利 View ,我就会向服务器询问特定法拉利车型可用的所有油漆。

接下来,用户退出,然后转到 View Controller ,该 Controller 询问我为每辆车提供的所有油漆颜色。我已经收藏了法拉利油漆。现在我向服务器索要所有油漆。在不重复资源的情况下将现有油漆与所有油漆聚合的最佳方法是什么?

最佳答案

您需要的是一种唯一标识服务器中每个对象的方法。在数据库中,对象(部分或整体)可以表示为一行,rowid 通常是单调递增的整数(尽管您的数据源可以使用其他值)。无论如何,请将此唯一 ID 存储在您创建的每个对象中,并在创建新对象之前检查是否存在具有该 ID 的对象。如果该对象已经存在,则返回现有对象,如果不存在,则创建一个新对象,然后将其存储在缓存中。使用整数作为 ids 效果很好,因为您可以使用 NSMapTable 作为缓存,以 rowids 作为键,值是对象指针。

关于iphone - 如何检查 NSSet 或 NSCountedSet 中是否存在现有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900749/

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