두 개의 IBOutlet이있는 탐색 컨트롤러 스택의 일부로보기 컨트롤러가 있습니다. viewDidUnload에서 나는 무료로 :dealloc에서 IBOutlet을 릴리스해야합니까?
- (void)viewDidUnload
{
self.myView1 = nil;
self.myView2 = nil;
[super viewDidUnload];
}
하지만 여전히 누수가있었습니다. 그래서 나는 그들에 대한 dealloc에 릴리즈 메시지를 붙였습니다.
- (void)dealloc
{
[myView1 release];
[myView2 release];
[super dealloc];
}
이것은 메모리 누수를 제거하는 것으로 보입니다. 그러나, 나는 항상해야한다고 들었습니다. 은 ivars가 alloc, copy 또는 new를 사용하여 만들어 졌다고 발표했습니다. 그래서이 두 릴리스가 여기에있는 것이 걱정됩니다. 이것이 옳은가 틀린가? 상충되는 의견을 계속 받기 때문에 누군가 나에게 설명해 주시겠습니까 ... 고마워요!
감사합니다. "alloc, copy or retain"에 대한 규칙을 들었지만 XIB가로드 될 때이를 유지한다는 사실을 실제로 고려하지 않았습니다. 이걸 내 마음에 새겨 넣을거야! – jowie