Pertama, saya tidak yakin saya benar-benar mengerti apa itu selector. Dari pemahaman saya, itu adalah nama metode, dan Anda dapat menetapkannya ke kelas tipe 'SEL' dan kemudian menjalankan metode seperti respondToSelector untuk melihat apakah penerima mengimplementasikan metode itu. Bisakah seseorang memberikan penjelasan yang lebih baik?
Kedua, untuk poin ini, saya memiliki kode berikut:
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]);
Namun, meskipun thing
jelas merupakan jenis NSString, dan harus merespons lowercaseString, saya tidak bisa mendapatkan 'respondsToSelector' bersyarat untuk mengembalikan "YA" ...