storehouse
으로 옮기기를 원하는 product
이있는 곳에서 프로그램을 만들려고합니다.목표 C - 배열의 수량은 항상 0으로 재설정되지만 그 이유는 무엇입니까?
예 : 창고에
이동 (손) 인벤토리 사과 25 개 상자.
나는 창고의 listOfProducts
에 제품을 추가 한 다음이 안된다하더라도, 창고의 제품도 영향을 어떤 이유로 주식을 제로합니다.
프로세스는 다음과 같아야합니다.
- 은 수량이 창고의 listOfProducts에 제품 객체를 추가 손
- 에있는 주식을 추가 확인하고, 당신은 창고
- 업데이트 창고의 수량으로 이동하려는 제품의 개체를 찾기
- 인벤토리 주식을 0으로 만드십시오.
그러나 창고 수량도 0입니까? 왜? 왜 그렇게해야하는지에 대한 이유가없는 것처럼 보입니다.
내가 참조하고있는 개체 사이에 심볼릭 링크가 강제로있는 것처럼 보입니다.
먼저 개체의 복사본을 만들어야합니까?
일부 메모.
. 창고는 대상이며 각 도시마다 창고가 있습니다 (예 : city.listOfStorehouses).b. city.listOfStorehouses는 싱글 톤으로 유지되므로 상태를 저장하거나 페이지간에 전달하는 것은 문제가되지 않습니다.
c. 항목이 창고에 추가되지만 수량이 0으로 재설정됩니까? 하지만 왜?
// 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 개 사과를 이동할 때 참조 및 수량 잘 보인다.
그러나 페이지를 새로 고침/다시로드하면 거기에 항목이 있더라도 저장소가 0으로 재설정됩니다.
나는 창고 항목 qty가 0으로 설정되는 원인을 알지 못합니다.
다음은 로그 출력입니다. 당신이 변수에 객체를 할당 할 때
// 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
나는 복사를해야 할 것이다. 나는 전에 그것을 한 적이 없다. 나는 꽤 많은 것들이 있기 때문에 모든 속성을 (코드로 작성하여) 복사하고 싶지 않다. – zardon
당신이 옳다고 생각합니다. nscopy를 사용하여 기본 테스트를 수행했으며, nscopy를 처음 접했을 때만 테스트했지만 수량이 최소한으로 유지되도록했습니다. – zardon