まず、セレクターが何であるかを本当に理解しているかどうかはわかりません。私の理解では、これはメソッドの名前であり、タイプ「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」を取得できません。