编辑自定义类对象时遇到问题, 我有一个定制的产品类, 当我通过下一个视图传递它,我可以修复它的数量,并将其保存到我的appdelegate数组,一切都好! 但是,如果我尝试将相同的产品与另一个数量添加到同一个数组,第一个对象会被覆盖,我会在我的数组中使用相同的属性值两次获得第二个对象, 我的代码在这里凌乱过去,所以这里有一个问题的伪示例:
view A: list of products
class product:
title
quantity
View B: product details
set quantity
let's say I choose product apple:
in view B quantity set to 2
added to array
if I select product apple again
set quantity to 1
added to array
as result I do get an array of 2 objects:
-apple quantity 1
-apple quantity 1
任何帮助表示赞赏,
答案 0 :(得分:1)
该场景指出了一个简单的根本原因:在编辑对象之前,您没有复制该对象。 NSMutableArray
中的两个对象实际上是同一个对象。
如果没有看到相关代码,很难确定问题。但是,您需要确保产品和数量不存储在同一对象中:
@interface Product
@property NSString *name;
@property NSDecimal *price;
@end
@interface OrderEntry
@property Product *product;
@property int quantity;
@end
您应该将OrderEntry
个对象添加到NSMutableArray
。每次添加新条目时,都需要创建一个新的OrderEntry
对象,而不是修改现有的对象。