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