Po pierwsze, nie jestem pewien, czy naprawdę rozumiem, czym jest selektor. W moim rozumieniu jest to nazwa metody i można ją przypisać do klasy typu „SEL”, a następnie uruchomić metody, takie jak respondToSelector, aby sprawdzić, czy odbiornik implementuje tę metodę. Czy ktoś może zaoferować lepsze wyjaśnienie?
Po drugie, do tego momentu mam następujący kod:
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]);
Jednak mimo że thing
jest to wyraźnie rodzaj NSString i powinien odpowiadać na lowercaseString, nie mogę uzyskać warunku „respondsToSelector”, aby zwrócić „YES” ...