Xcode에서 사전 개체 배열을 포함하는 배열을 작성하려고합니다. 하나 이상의 사전이있는 작업 배열을 만든 다음 addObject : 메서드를 사용하여이 배열을 기본 배열의 객체로 추가 할 수 있습니다. 이 작업을 몇 번 반복하고 작업 배열을 다시 작성하고 주 배열에 객체를 추가합니다. 지금까지는 모든 좋은, 내 기본 배열을 검사하는 것을 제외하고 그것은 작업 배열이 만들어졌습니다 마지막 사전의 중복이 포함되어 있습니다. 나는 이것이 addObject를 사용할 때 간단히 배열에 포인터를 할당하지만 retain count를 증가시키지 않거나 작업 배열의 복사본을 생성하지 않기 때문에 주 배열이 단순히이 배열을 가리킬 때마다 .Xcode에서 배열 배열 만들기
나는 내 질문에 어떻게 작동 배열의 복사본을 만들어 메인 어레이에 추가 한 다음 다시 추가하고 다시 추가 할 것인가? 이 질문이 기본 질문 인 것처럼 보이면 유감스럽고 유감스럽게 생각합니다. (저는 Xcode에 익숙하지 않습니다.) 도움이된다면 정말 감사하겠습니다.
[sectionArray release];
sectionArray = [[NSMutableArray alloc] init];
[sectionArray addObject:dict];
이 위대한 모든 작품
. 한 가지 내가 아직 주위에 머리를 가지고 있지 않다면, 내가 메인 어레이로 끝났을 때, [mainArray release]를 수행 할 때도 이러한 자식 배열이 메모리에 남아 있거나 릴리스가 파괴 될 위험이있다. 그들도?나는
내가 있었나요, 즉, 내부 작업 배열을 다시 초기화하는 대신 단지 모든 개체를 제거하여 그것을 해결 한 : [sectionArray removeAllObjects];
[sectionArray addObject:dict];
을 그리고 그것을 변경 :
sectionArray = [[NSMutableArray alloc] init];
[sectionArray addObject:dict];
나는 이것이 좋은 일은 아니지만 온통 기억이 새어 나기 시작할 것이라고 느끼고 있습니다. 장소.
배열에서 addObject를 수행하면 배열이이 객체를 유지합니다. ... 따라서이 문제가 발생하지 않는다는 가정이 잘못되었습니다 – Daniel
코드 샘플? 당신이 원하는 것은 가능하기 때문에 버그가있을 수 있습니다. –
예. 당신은 그것을 풀어 놓아야합니다. 또는 NSMutableArray + 배열 메서드를 사용하십시오. – nall