첫째, 선택자가 무엇인지 정말 잘 이해하지 못합니다. 내 이해로는 메서드의 이름이며 'SEL'유형의 클래스에 할당 한 다음 respondToSelector와 같은 메서드를 실행하여 수신자가 해당 메서드를 구현하는지 확인할 수 있습니다. 누군가가 더 나은 설명을 제공 할 수 있습니까?
둘째, 지금까지 다음 코드가 있습니다.
NSString *thing = @"Hello, this is Craig";
SEL sel = @selector(lowercaseString:);
NSString *lower = (([thing respondsToSelector:sel]) ? @"YES" : @"NO");
NSLog (@"Responds to lowercaseString: %@", lower);
if ([thing respondsToSelector:sel]) //(lower == @"YES")
NSLog(@"lowercaseString is: %@", [thing lowercaseString]);
그러나 thing
분명히 NSString의 일종이고 lowercaseString에 응답해야 하지만 "YES"를 반환하는 'respondsToSelector'조건을 얻을 수 없습니다.