是否可以在Objective-C中定义匿名选择器?

时间:2009-11-23 00:50:44

标签: iphone objective-c selector anonymous-methods

我希望能够在需要选择器作为参数的地方定义一个内联匿名选择器。

这是可能的,还是我必须吮吸它并定义方法?

背景 :在我的iPhone应用程序中,我需要从另一个线程更新我的UI。要做到这一点,我使用performSelectorOnMainThread:withObject:waitUntilDone:但是,我希望能够在不必定义其他方法的情况下获得此功能。

1 个答案:

答案 0 :(得分:16)

不幸的是,没有。这个想法是自相矛盾的 - 选择器一个名字。这就是全部。它没有定义任何功能。

直到最近,当块被引入Mac OS X时,Objective-C没有任何类型的匿名功能。可以通过Plausible Blocks在iPhone上使用它们,但它们仍未集成到那里的API。

2014年更新

这个答案在2009年是正确的,但到目前为止,Apple已将blocks很好地集成到iOS框架中。它们现在非常普遍地用于回调,并且在Grand Central Dispatch并发库中大量使用。