我是Cocoa/Cocoa Touch的新手,并且正在编写一本开发手册.我遇到过使用@selector()运算符的情况.关于如何以及何时应该使用@selector()运算符,我有点迷失.有人可以提供一个简短而甜蜜的解释,说明为什么使用它以及它给开发人员带来了什么好处?
顺便说一下,这里是从Apple的iPhone开发站点获取的示例代码,它使用@selector()
if ([elementName isEqualToString:@"entry"])
{
parsedEarthquakesCounter++;
// An entry in the RSS feed represents an earthquake, so create an instance of it.
self.currentEarthquakeObject = [[Earthquake alloc] init];
// Add the new Earthquake object to the application's array of earthquakes.
[(id)[[UIApplication sharedApplication] delegate]
performSelectorOnMainThread:@selector(addToEarthquakeList:)
withObject:self.currentEarthquakeObject waitUntilDone:YES];
return;
}
Run Code Online (Sandbox Code Playgroud)
And*_*ant 40
选择器运算符提供了一种引用对象提供的方法的方法,有点类似于C中的函数指针.它很有用,因为它允许您解除对象上调用方法的过程.例如,一段代码可以提供方法,另一段代码可以将该方法应用于给定的一组对象.
例子:
测试一个对象是否实现某种方法:
[object respondsToSelector:@selector(methodName)]
Run Code Online (Sandbox Code Playgroud)
存储方法以便以后调用对象;
SEL method = @selector(methodName);
[object performSelector:method];
Run Code Online (Sandbox Code Playgroud)
在不同的线程上调用方法(对GUI工作很有用).
[object performSelectorOnMainThread:@selector(methodName)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26049 次 |
| 最近记录: |