【发布时间】:2011-07-01 08:16:34
【问题描述】:
我必须为我的应用制作一个购物车,但我不知道实现它的最佳方式。
我正在考虑使用NSMutableArray,但我不确定这是否是最好的方法。
有什么建议吗?
【问题讨论】:
我必须为我的应用制作一个购物车,但我不知道实现它的最佳方式。
我正在考虑使用NSMutableArray,但我不确定这是否是最好的方法。
有什么建议吗?
【问题讨论】:
你可以试试 NSMutableOrderedSet。
这是他们在 AppleDocumentation 中所说的:
"排序时可以使用有序集合作为数组的替代 元素的重要性和性能在测试一个对象是否 包含在集合中是一个考虑因素——测试 数组比测试集合的成员要慢。”
检查某个产品是否已经在购物车中可能既困难又低效 - 使用 NSMutableOrderedSet 可以为您省去这个麻烦。它很像 NSMutableArray,但对这个函数更有效。
【讨论】:
虽然这取决于购物车的大小,但如果您打算通过 ID 标签或其他方式有效地搜索/获取购物车内容,则数组不是最佳选择。 NSDictionary 会是更好的选择。
【讨论】:
- (NSIndexSet *)indexesOfObjectsWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate 方法来查询您的购物车。