Во-первых, я не уверен, что действительно понимаю, что такое селектор. По моему мнению, это имя метода, и вы можете назначить его классу типа "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, я не могу получить условие "responsesToSelector", чтобы вернуть "YES"...