最初に、セレクターが何であるかを本当に理解しているのかわかりません。私の理解では、これはメソッドの名前であり、タイプ「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に応答する必要がありますが、「respondsToSelector」条件付きで「YES」を返すことができません...