2011-05-06 1 views
1

VIEW-CONTROL-MODEL 구조에 위임을 광범위하게 사용합니다. 일반적으로 CONTROL & MODEL 개체는 앱 실행 중에 유지되어 거의 문제가 발생하지 않습니다.ios 대리자가 출시되었는지 확인하는 방법

그러나 종종 UIViewController의 인스턴스 인 VIEW 개체는 할당되고 여러 번 릴리스됩니다.

동적 인 UIViewController 인스턴스가 할당 된 대리인 개체에 할당 설정을 해제 할 때 EXC_BAD_ACCESS 오류를 피하는 방법을 알고있는 한 가지 방법입니다.

그러나, 나는 항상 사용하는 경우에도 :

if ([delegate respondsToSelector:@selector(communityModel:finishedDeletingComment:)]) { 
    [delegate communityModel:self finishedDeletingComment:succeeded]; 
} 

이 오류를 방지하기위한 완벽한 아니다. 다른 VIEW 개체가 CONTROL 개체의 대리인 한 명 또는 제한된 수를 공유하는 경우 항상 대리자를 실수로 다른 개체로 교체하여 EXC_BAD_ACCESS를 발생시키는 경향이 있습니다.

대리인을 관리하고, 대리자 메서드를 호출하는 순간에?

대리인의 속성을 설정하는 일반적인 방법을 변경해야하는지 의심 스럽습니다. 나는 대리인의 속성을 설정하려면이 방법을 사용 : 나는 속성 설정에 대한 의심 올바른 궤도에가는

@property (nonatomic, assign) id<ControlDelegate> delegate; 

암을?

답변

0

대리자를 사용하는 내 개체가 대리인 또는 대리인 구성원 등일 때 assign 속성으로 대리인을 선언합니다.이 경우 retain 속성은 메모리 누수로 연결됩니다. 위임장을 보유하지 않는 이유는 어디에도 없습니다. 허용되는 경우 - 귀하의 부동산을 다음과 같이 신고하십시오 :

@property (nonatomic, retain) id<ControlDelegate> delegate;