Ios5 何时以及为什么使用PerformSelect-iOS

Ios5 何时以及为什么使用PerformSelect-iOS,ios5,methods,performselector,Ios5,Methods,Performselector,我一直在试图弄清楚为什么以及如何使用performSelector。 我确实遇到过。然而,我不能完全理解它 有人能帮我解释一下吗?来自苹果的文档: performSelector:方法允许您发送不正确的消息 直到运行时才确定 长话短说: 您可以向对象发送消息,而不必事先知道对象是否实现了此特定方法。例如: NSString *astring = @"test"; [test dance]; // Doesn't compile [test performSelector:@selector(d

我一直在试图弄清楚为什么以及如何使用performSelector。 我确实遇到过。然而,我不能完全理解它


有人能帮我解释一下吗?

来自苹果的文档:

performSelector:方法允许您发送不正确的消息 直到运行时才确定

长话短说:

您可以向对象发送消息,而不必事先知道对象是否实现了此特定方法。例如:

NSString *astring = @"test";

[test dance]; // Doesn't compile
[test performSelector:@selector(dance)]; // Doesn't make sense but compiles 

好的,使用选择器是一种声明
回调方法的方法,就像我们在Java、C#、。。。假设您开发了一个库,它执行异步计算,并在执行时返回结果。在开发时,您不知道在计算完成时应该调用什么回调方法。因此,您可以让库获取一个
选择器
作为输入参数,并在以后使用
performSelector
调用回调方法


希望这能有所帮助。

谢谢。。这是有道理的。。您能否给我一个例子,说明我将在实现方法的对象上使用performSelector的位置?例如,当您希望在后台执行方法时:
[self-performSelectorInBackground:@selector(myMethod)with object:nil]谢谢你的回复。那么,与仅仅调用一个方法相比,我什么时候会使用performSelector呢?主要是在我示例中的方法中,它将其他方法(选择器)作为参数。(将其视为指向方法的“指针”)