다차원 NSMutableArray
을 설정하려고합니다. 처음에 모든 위치를 으로 설정하고 객체를 다른 [NSNumber numberWithInt:4]
(예 :)으로 바꿉니다. 완료되면 배열을 다시 작성하고 싶습니다. 나는 [array release]
라고 말하는 것이 맞습니까? 그게 모든 NSNumber
개체를 출시 할 예정입니까? 아니면 먼저 모든 객체를 0으로 설정하는 등 더 많은 메모리 관리를해야합니까?NSMutableArray를 사용한 메모리 누수
답변
배열을 해제하고 다시 생성하거나 약간 더 효율적으로 배열의 -removeAllObjects
을 호출하면됩니다. 그것을 채우는 NSNumber 객체는 자동으로 릴리즈되므로 어레이를 추가 할 때 배열의 소유권을 가져 와서 배열 자체가 해제되거나 내용이 제거 될 때 배열을 해제해야 할 책임이 있습니다.
개체 배열을 해제 할 때뿐만 아니라 개체를 추가/바꾸기 및 제거 할 때 배열에서 NSNumber
을 올바르게 유지하고 해제합니다. 그래서 네가 맞다. 자동 완성 된 객체를 반환하는 NSNumber
편의 생성자를 사용하고 있기 때문이다.
철학적으로, 유지 및 해제와 관련하여 NSArray
이하는 일을 알고 있거나 신경 쓰지 않아야합니다. 그것의 계약 범위는 addObject:
/etc가 배열에 객체를 넣고 objectAtIndex:
/etc가 같은 객체를 반환한다는 것입니다. 객체를 어레이에 배치 한 후에도 계속 소유해야하는지 여부는 전적으로 자신의 요구 사항에 따라 고려해야합니다. NSArray
은 전적으로 자체 메모리 관리를 담당합니다.
NSArray
의 경우 내부적으로 보유 및 릴리스를 관리하는 방법은 잘 알려져 있으며 문자 그대로의 질문은 이미 노아와 조가 대답했습니다. 그러나 결코 특정 구현이있는 다른 객체에 의존해서는 안됩니다.
NSArray가 해당 요소를 유지하고 해제한다는 것이 명시 적으로 설명되어 있습니다. http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Arrays.html 계약서의 일부로, 배열을 사용하여 동적 번호를 소유 할 수 있다는 이점이 있습니다. 각 개체를 사용자가 보유하고 릴리스하지 않고도 구체화되지 않은 구현 세부 사항에 의존하지 않고도 (이 모든 것은 사전 [키 복사, 객체 유지] 및 설정에 사용됩니다.) –
- 1. NSString을 사용한 메모리 누수
- 2. Texture2D를 사용한 메모리 누수
- 3. cvCopy를 사용한 메모리 누수
- 4. ContextMenuStrip을 사용한 메모리 누수
- 5. 위치 관리자를 사용한 메모리 누수
- 6. NSMutableString을 사용한 메모리 누수 appendString
- 7. 사운드 합성을 사용한 메모리 누수
- 8. NSMutableArray를 메모리
- 9. .NET SqlConnection 및 DataSet을 사용한 메모리 누수
- 10. 스윙을 사용한 메모리 누수 끌어서 놓기
- 11. VisualVM 메모리 누수 감지
- 12. NSMutableArray initWithContentsOfFile 메모리 누수
- 13. 배열이있는 메모리 누수
- 14. 메모리 누수
- 15. 메모리 누수
- 16. 메모리 누수
- 17. SpeechSynthesizer의 상수 메모리 누수
- 18. malloc을 사용한 메모리 누수가 실패했습니다.
- 19. WPF WriteableBitmap 메모리 누수?
- 20. iPhone에서 메모리 누수 : (
- 21. 자바 메모리 누수 문제
- 22. 아이폰 - NSKeyedUnarchiver 메모리 누수
- 23. Adobe AIR, 메모리 누수
- 24. 자바 스크립트 메모리 누수
- 25. 코어 데이터의 메모리 누수
- 26. 메모리 누수 관련
- 27. 도움말 메모리 누수 찾기
- 28. iPhone ABPeoplePickerNavigationController 메모리 누수
- 29. 아이폰 - UITextView 메모리 누수
- 30. UITableView의 메모리 누수 문제
완벽하게 작업 해 주셔서 감사합니다. – Ben