2009-07-06 5 views
3

일부 인터페이스 빌더 객체를 인스턴스 변수로 다른 객체에 연결하는 경우 부모 객체의 dealloc 메소드에서 해제해야합니까? 중요한 점은 (비 원자, 유지) 모드에서 키 값 코딩 (@property)을 사용하여 IBOutlet을 선언한다는 것입니다. 내 이론에서는 IBOutlet 객체가 생성 될 때 initWithNibName : ... 내 View Controller의 메소드가 호출되며 보유 모드에서 @property 메소드를 구현했기 때문에 상위 객체가 보유합니다. 이 올바른지? 할당 모드에서 메소드를 구현하면 어떨까요?Objective-c IBOutlet 객체가 해제 되나요?

답변

2

확실히 맞습니다. dealloc, IBOutlet에서 (retain) 속성을 해제해야합니다. IBOutlets에 대한 이러한 방식의 메모리 관리가 명확하게 정의됩니다.

이미 보유 된 객체 (예 : 유지 된 뷰의 하위 뷰)에서 IBOutlet을 연결하는 경우 속성에 대해 (할당)을 사용할 수도 있습니다 (물론 dealloc에서 풀어서는 안됩니다).