我正在尝试做一个程序,其中有一个product
我希望被移动到storehouse
.
例子:
将 25 箱苹果从库存(手头)移至仓库。
当我将产品添加到仓库listOfProducts
然后将库存归零时,由于某种原因,仓库的产品也会受到影响,即使它不应该受到影响。
该过程应该是;
- 找到您要入库的产品对象
- 更新仓库数量,确保数量是添加您手头的库存
- 将产品对象添加到仓库的 listOfProducts
- 使库存库存为零 (0)
但它也使仓库数量为0?为什么?它似乎没有理由这样做。
它似乎在我引用的对象之间强制建立了符号链接,即使这不是要发生的事情。
我需要先制作对象的副本吗?
一些笔记。
一个。仓库是一个对象,每个城市都有一个仓库(即city.listOfStorehouses)。
湾。city.listOfStorehouses 保存在单例中,因此保存状态或在页面之间传递状态不是问题。
C。物品被添加到仓库,但数量重置为零?但为什么?
// Try to move X goods from inventory -> storehouse
NSLog(@"Goods to move = %@, %d crates", self.product.name, self.crates);
// I add the qty to the product I want to put into the storehouse
self.product.qty += self.crates;
// Append the array (I should check if the product already exists but this does not matter right now)
[self.storehouse.listOfProducts addObject:self.product];
// Reset crates because it should always be zero because you've moved them
// from your inventory into a storehouse
self.crates = 0;
好的,所以当我在库存页面上将 25 个苹果从库存转移到仓库时,参考和数量似乎都很好。
但是,如果我刷新/重新加载页面,即使仓库中有物品,数量也会在仓库中重置为零。
我不知道是什么导致仓库项目数量设置为零。
这是一个日志输出;
// Log output
// Stock page
// Goods to move = Apples, 25 crates, seems to be storing fine, no problem.
2013-02-16 09:40:27.257 TestApp[1524:c07] Storehouse = (25/500)
2013-02-16 09:40:27.260 TestApp[1524:c07] #0 storehouse item = Apples with 25 crates
// Previous page
// When I go back to the previous page, the qty is zero?? WHY?
2013-02-16 09:41:33.980 TestApp[1524:c07] Storehouse = (0/500)
2013-02-16 09:41:33.980 TestApp[1524:c07] #0 storehouse item = Apple with 0 crates