2010-01-22 4 views
3

내 질문은 간단합니다. 내보기에 대리자 메서드를 포함하는 대신 대리인 역할을 할 개체를 어떻게 만듭니 까?대리자 역할을 할 개체 만들기 - 목표 C

예를 들어 대리자 메서드가 필요한 x 기능이 있으며 현재는 자체를 대리자로 사용하도록 설정되어 있습니다. 이러한 메서드를 자신의 개체에 넣어서 뷰가 끝나면 대리자 메서드를 호출하고 처리 할 수 ​​있습니다.

가장 좋은 방법은 무엇입니까?

답변

2

는, NSXMLParser 위임 방법 - 그들은 존재 대리자가 정의,하지만 난에 자기로 전화를 싶지 않는 내 컨트롤러보기 ... 다른 옵션은 무엇입니까?

원하는 경우 다른 사용자 지정 클래스를 지정하여 대리자 메서드를 처리 할 수 ​​있습니다. 단순히 클래스를 만들거나 MyXMLParserDelegate 또는 이와 비슷한 클래스를 만듭니다. 그런 다음, NSXMLParser 오브젝트에 클래스의 인스턴스를 위임자로 사용해야한다고 명령하면됩니다. 당신이 인터페이스 빌더를 사용하는 경우

은의 XIB 파일에 새 개체를 추가 MyXMLParserDelegate에 해당 클래스를 설정 한 다음 새 개체로 NSXMLParser 개체의 delegate 선택에서 연결을 끕니다. 프로그래밍을 수행하는 경우

, 기본 동작은 다음과 같습니다

MyXMLParserDelegate * myDelegate = [[MyXMLParserDelegate alloc] init]; 
[someXMLParser setDelegate:myDelegate]; 

명심 그러나 메모리가 누수없이이 작업을 수행하기 위해, 그래서 대표가 유지되지 않습니다, 당신은 추가해야 MyXMLParserDelegate의 ivar을 viewController 클래스에 추가 한 후 다음을 수행하십시오.

// in your @interface block: 
{ 
    ... 
    MyXMLParserDelegate * myDelegate; 
} 

// in your init method: 
myDelegate = [[MyXMLParserDelegate alloc] init]; 

// in your awakeFromNib method (or anywhere else it seems appropriate): 
[someXMLParser setDelegate:myDelegate]; 

// in your dealloc method: 
[myDelegate release]; 
+0

안녕하세요 감사합니다 -이 작업을 수행하고, 내가 뭘하는지, 그래서 좋습니다. – mootymoots

1

체크 아웃이 답변, 나는 당신이 필요로 커버 생각 : How to use custom delegates in Objective-C 예를 들어

+0

위임자를 만드는 방법에 대한 설명이 없습니까? 대리자 메서드 등은 이미 내가 만드는 사용자 지정 클래스 개체의 일부로 만들어집니다. 난 그냥 내 델 컨트롤러에 필요한 대리자 메서드를 넣으려면 싶지 않아. – mootymoots

+0

예를 들어, NSXMLParser 대리자 메서드 - 존재하는, 대리자가 정의되어 있지만 내 자신의 호출 컨트롤러로 호출하고 싶지 않아 ... 내가 가진 다른 옵션은 무엇입니까? – mootymoots