선택적 메서드를 사용하여 프로토콜을 구현했으며 메시지를 보내기 전에 호출 메서드에서 respondsToSelector:
을 self.delegate
으로 보내려고합니다. 그러나 컴파일되지 않습니다. 실패 메시지는 다음과 같습니다.self.delegate respondsToSelector : ... 컴파일되지 않았습니다.
아니요 'respondsToSelector'에 대한 알려진 인스턴스 메소드입니다. 컴파일 아래와 같이 해결 방법, 나는 "소독"대리자로서
...//MyClass.h:
@class MyClass;
@Protocol MyClassDelegate
- (void)myClass:(MyClass *)sender willDoSomething:(BOOL)animated;
@end
@interface MyClass : UIViewController
@property (nonatomic, weak) id<MyClassDelegate> delegate;
@end
및
//MyClass.m:
...
@synthesize delegate = _delegate;
...
id sanitizedDelegate = self.delegate; //Hmmmm... why does this work?
if ([sanitizedDelegate respondsToSelector:@selector(myClass:willDoSomething:)]) {
[self.delegate myClass:self willDoSomething:animated];
}
.
this one을 포함한 여러 게시물을 확인했지만 컴파일 실패 문제에 답변하지 않았습니다.
또한, 다른 접근이 작동하지 않습니다 ...
[self delegate]
//or
_delegate
는 사람이를 본 사람 또는 처리하는 더 좋은 방법을 조언 해 줄 수 있습니다?
IOS 5.0 (9A334), 엑스 코드 4.2.1 (4D502)
Ka-ching ... 나는 문 # 3을 가져갈 것이다. – vmanjz
NSObject가 작업 한 것처럼 위임을 선언했습니다. 감사합니다! – c0d3Junk13