Во-первых, я не уверен, что действительно понимаю, что такое селектор. Насколько я понимаю, это имя метода, и вы можете назначить его классу типа «SEL», а затем запустить методы, такие как responseToSelector, чтобы увидеть, реализует ли получатель этот метод. Может кто-нибудь предложить лучшее объяснение?
Во-вторых, к этому моменту у меня есть следующий код:
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, я не могу получить условное выражение «responsedsToSelector» для возврата «ДА» ...