อันดับแรกฉันไม่แน่ใจว่าฉันเข้าใจจริงๆว่าตัวเลือกคืออะไร จากความเข้าใจของฉันมันเป็นชื่อของวิธีการและคุณสามารถกำหนดให้กับคลาสประเภท '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 แต่ฉันไม่สามารถรับเงื่อนไข 'responseToSelector' เพื่อส่งคืน "YES" ได้ ...