1
도우미 클래스를 만들고 있습니다. 이 헬퍼 클래스는 상호 작용할 NSObject 클래스와 다른 것들을하는 UIViewController로 구성됩니다.대리인이 자동으로 nil로 설정되어있는 것 같습니다.
@protocol MyDelegate
-(void) someCall;
@end
@interface MyHelperClass : NSObject {
id <MyDelegate> delegate;
}
@property (retain, nonatomic) id <MyDelegate> delegate;
을 따라서이 잘 작동 : 이제
MyObjectClass *class = [[MyObjectClass alloc] init];
[class setDelegate:self];
,이 대표는이 같은 만든 뭔가입니다 : 여기
내 애플 대리자에서 발생 또는 내 NSObject의 클래스를 할당 할 때마다 무엇인가 . 그러나 여기에 문제가 있습니다. 내 헬퍼 클래스를 할당하고 뷰 컨트롤러 또는 다른 위임자로 설정 한 다음 내 헬퍼보기 컨트롤러를 여는 내 메서드 중 하나를 호출하면 대리자가 작동을 멈 춥니 다. 디버깅 후 그것은 다른보기 컨트롤러 팝업 때까지 일부 메모리 주소를 것 및 반환 할 때 대리자의 메모리 주소를 0x0 있습니다.내 질문은 어떻게 될 수 있습니까? 대리인이 발표하지 못하게하려면 특별한 조치를 취해야합니까? (나는 어디에도 그것을 풀어주지 않는다) 그것을 유지해야 하는가? viewcontroller를 열어도 계속 사용하도록 할당하려면 어떻게해야합니까?
미리 감사드립니다.
어떻게해야합니까? ... "도우미 클래스를 할당하고 뷰 컨트롤러 등의 위임자로 설정 한 다음 내 도우미 뷰 컨트롤러를 여는 내 메서드 중 하나를 호출하면 대리인이 작동을 멈 춥니 다." ... 코드를 게시하십시오 ..... 나는 이것이 참조 손실의 문제라고 생각합니다. 코드가 도움이 될 것입니다. – Ravin
Ravin, 위에 NSObject 클래스를 할당하는 방법에 대한 코드를 보여주었습니다. 내 대리자에서 다음과 같은 메서드를 호출합니다. [delegate someCall]; – John
MyObjectClass * class = [[MyObjectClass alloc] init]; [class setDelegate : self]; someCall 메서드를 스스로 작성하고 있습니까? MyObjectClass 클래스의 다른 이름으로 시도해 보셨습니까? – Ravin