我希望能够在需要选择器作为参数的地方定义一个内联匿名选择器。
这是可能的,还是我必须吮吸它并定义方法?
背景 :在我的iPhone应用程序中,我需要从另一个线程更新我的UI。要做到这一点,我使用performSelectorOnMainThread:withObject:waitUntilDone:
但是,我希望能够在不必定义其他方法的情况下获得此功能。
答案 0 :(得分:16)
不幸的是,没有。这个想法是自相矛盾的 - 选择器是一个名字。这就是全部。它没有定义任何功能。
直到最近,当块被引入Mac OS X时,Objective-C没有任何类型的匿名功能。可以通过Plausible Blocks在iPhone上使用它们,但它们仍未集成到那里的API。这个答案在2009年是正确的,但到目前为止,Apple已将blocks很好地集成到iOS框架中。它们现在非常普遍地用于回调,并且在Grand Central Dispatch并发库中大量使用。