【发布时间】:2010-10-18 19:49:40
【问题描述】:
首先,我不确定我是否真的理解选择器是什么。根据我的理解,它是一个方法的名称,你可以将它分配给一个'SEL'类型的类,然后运行诸如respondToSelector之类的方法来查看接收者是否实现了该方法。有人可以提供更好的解释吗?
其次,到目前为止,我有以下代码:
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,并且应该响应小写字符串,但我无法让 'respondsToSelector' 条件返回“YES”...
【问题讨论】:
-
您想阅读 Apple 开发者网站上的 Selector 描述:Selectors。
-
斯坦福课程 CS193P 作业 1B?我在这里有完全相同的问题! :)
标签: objective-c selector