Đầu tiên, tôi không chắc mình thực sự hiểu bộ chọn là gì. Theo hiểu biết của tôi, đó là tên của một phương thức và bạn có thể gán nó cho một lớp kiểu 'SEL' và sau đó chạy các phương thức như responseToSelector để xem liệu người nhận có triển khai phương thức đó hay không. Ai đó có thể đưa ra một lời giải thích tốt hơn?
Thứ hai, đến thời điểm này, tôi có đoạn mã sau:
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]);
Tuy nhiên, mặc dù thing
rõ ràng là một loại NSString và phải phản hồi với chuỗi chữ thường, tôi không thể lấy điều kiện 'responseToSelector' để trả về "YES" ...