NSString *
과 같은 메서드가 있습니다. 존재하는 경우, 나는 그것을 부르고 싶지 않다면 아무것도하지 말라. 선택기이 실제로 유효하지 않기 때문에NSString이 주어진 경우 Obj-C에 메서드가 있는지 알아 보는 방법
SEL eventSelector = NSSelectorFromString(eventSelectorStr);
if ([delegate respondsToSelector:eventSelector]) {
[delegate performSelector:eventSelector];
[delegate adapterDidFinishAdRequest:self];
}
else {
// Does not implement selector
}
NSSelectorFromString
가 선택기로 문자열을 등록하기 때문에이 코드는 작동하지 않기 때문에 respondsToSelector:eventSelector
는 충돌의 원인이됩니다.
"항상"true를 반환하지 않습니다. respondsToSelector : 수신기가 해당 메소드를 구현하는 경우에만 true를 반환합니다. 위의 코드에 아무런 문제가 보이지 않습니다. – progrmr
문제는'NSSelectorFromString'이 무효 인 새로운 선택자를 생성하기 때문에'respondsToSelector' 호출시 충돌이 발생합니다. – Justin