저는 iPhone SDK 3.0을 사용하고 있습니다. 그러나 이것은 메모리 관리와 함께 일하는 방법에 대한 일반적인 오해라고 생각합니다. &포인터 메모리 관리 오해 오브 객의 -c
나는이
@implementation MyViewController
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
}
// other stuff...
@end
난 도망 위의 뷰 컨트롤러에서 전환하고 모든 것을 다시 전환하려고 같은 viewWillAppear 메소드가 제대로 작동 무시했습니다.
그러나 내가 이라고 생각하면 NSArray에 대한 참조가 이제 bottomBar에 의해 유지되기 때문에 원래의 포인터를 "항목"에 "놓아야합니다". 하지만이 (아래 코드 참조) 및 UIViewController 멀리 전환하려고 할 때 메모리 관리 오류 (- [CFArray 개수] : 해제 된 인스턴스 0xd5f530 메시지를 보냈습니다).
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
[items release];
}
내가이 경우
하지 릴리스 항목에 필요합니까? 아니면 내가 잘못하고있는거야? 분명히, 경험적 증거에 의하면 "항목"을 공개해서는 안되지만, 이것이 왜 그런지는 분명하지 않습니다.
정보/"포인터"를 보내 주셔서 감사합니다!
덕분에! 그리고 링크에 감사드립니다. – user141146