구현 된 프로토콜 없이 NSObject 인스턴스에서 선택기를 사용하고 싶습니다 . 예를 들어, 호출 된 NSObject 인스턴스가 지원하는 경우 오류 속성을 설정해야하는 범주 메서드가 있습니다. 이것은 코드이며 코드는 의도 한대로 작동합니다.
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
그러나 컴파일러는 setError : 시그니처와 관련된 메소드를 찾지 못하므로 @selector(setError:)
스 니펫 이 포함 된 각 줄에 대해 경고를 표시합니다 .
Undeclared selector 'setError:'
이 경고를 없애기 위해 프로토콜을 선언하고 싶지는 않습니다. 왜냐하면 이것을 사용하여 특별한 것을 구현하기 위해 모든 클래스를 원하지 않기 때문입니다. 관습에 따라 setError:
메소드 또는 속성 을 갖기를 원합니다 .
이것이 가능합니까? 어떻게?
건배,
EP