나는 UIViewController에 관한 몇 가지 질문을 가지고있다 :몇 가지 질문 : UIViewController의 수명주기; 출시 대 설정을 무효로
1) 각각의 방법은 UIViewController에 대한 호출은 언제입니까? 특히, viewDidLoad, viewDidUnload 및 dealloc의 차이점.
2) 차이점은 무엇입니까? 은 일반적으로입니다. 포인터를 nil과 같게 설정하고 포인터를 놓을 때? viewDidUnload에서 dealloc 호출 릴리즈에서는 nil과 동일하게 설정해야한다는 것을 알고 있습니다.
업데이트 : 죄송합니다. 질문에 오해의 소지가 있음을 깨달았습니다. dealloc 대신 initWithNibName : bundle : 및 release가 호출되는 시점을 의미합니까? IB에 의해 한 번만, 맞습니까?
죄송합니다. nil로 설정하고 릴리스를 호출하는 것의 차이점을 제외한 모든 것을 이해합니다. 결국, 당신이 그것을하는 방식에 상관없이 당신은 그것을 릴리즈하지 않습니까? 그렇다면 왜 self.pointer = nil이고 [pointer release]가 아닌가? – jasonbogd
objective-c 메모리 관리 및 objective-c 2.0 속성을 읽어야합니다. 단순히 포인터를 nil로 설정해도 포인터가 가리키는 메모리가 해제되지 않습니다. 그러나 retain으로 특성을 지정하는 * 속성 *에 nil을 할당하면 이전에 저장된 객체는 전달 된 매개 변수에 포인터를 할당하고 retain을 호출하기 전에 릴리스 메시지를받습니다. 이 경우 매개 변수는 nil이므로 이전 객체는 release를 보내고 nil은 포인터에 할당 된 다음 retain이 nil (nil에 메시지를 보내지 않아도 아무 작업도하지 않음)에서 호출됩니다. – Jasarien