will -replaceobjectatindex : withobject : of nsmutablearray release 새 개체로 대체 된 오래된 개체?

StackOverflow https://stackoverflow.com/questions/906183

문제

문서는 그것에 대해 아무 말도하지 않습니다. 오래된 물건이 "제거"되고 새로운 물건이 그 장소에 들어 오면 오래된 물건은 어떻게됩니까? 혼자서 풀어야하나요?

도움이 되었습니까?

해결책

아니, 당신은 혼자서 릴리스 할 필요가 없습니다.

교체 된 객체의 고정 횟수가 0 인 경우 오류가 발생할 수 있습니다.

새로운 개체가 유지됩니다. 오래된 객체가 해제됩니다.

다른 팁

당신은 그것을 릴리스 할 필요가 없습니다.

당신은 수행하지 않았습니다 alloc, 복사 또는 유지하다 그것에 메모리에 대해 책임을지지 않습니다.이를 통해 문서는 분명합니다.

Apple은 이미 설정 한 메모리 관리 규칙을 위반하지 않는 한 SDK의 각 방법에 대한 메모리 관리 절차를 문서화 할 것으로 기대하지 않습니다. 문서가 아무 말도하지 않으면 기본 규칙이 적용된다고 가정 할 수 있습니다.

문서는 파일 상단에 이것을 매우 명확하게 나타냅니다.

NSARRAY와 마찬가지로 NSMutableArray의 인스턴스는 해당 내용에 대한 강력한 참조를 유지합니다. 쓰레기 수집을 사용하지 않으면 배열에 객체를 추가 할 때 객체는 유지 메시지를받습니다. 객체가 변한 배열에서 제거되면 릴리스 메시지가 수신됩니다. 객체에 대한 더 이상 참조가 없으면 객체가 처리되었음을 의미합니다. 프로그램이 해당 객체에 대한 참조를 유지하는 경우 배열에서 제거되기 전에 객체를 유지하는 메시지를 보내지 않으면 참조가 유효하지 않습니다.

모든 방법에 대해 이것을 반복적으로 문서화하는 점은 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top