【问题标题】:Is it possible to define an anonymous selector in Objective-C?是否可以在 Objective-C 中定义匿名选择器?
【发布时间】:2009-11-23 00:50:44
【问题描述】:
我希望能够在需要选择器作为参数的任何地方定义一个内联匿名选择器。
这可能吗,还是我必须接受它并定义一个方法?
背景:在我的 iPhone 应用程序中,我需要从另一个线程更新我的 UI。为此,我使用performSelectorOnMainThread:withObject:waitUntilDone: 但是,我希望能够获得此功能而无需定义其他方法。
【问题讨论】:
标签:
iphone
objective-c
selector
anonymous-methods
【解决方案1】:
很遗憾,没有。这个想法是自相矛盾的——选择器是一个名字。就是这样。它没有定义任何功能。
Objective-C 直到最近才在 Mac OS X 中引入块时才具有任何匿名函数。可以通过Plausible Blocks 在 iPhone 上使用它们,但它们仍然没有集成到 API 中在那里。
2014 年更新
这个答案在 2009 年是正确的,但现在 Apple 已将 blocks 很好地集成到 iOS 框架中。它们现在非常普遍地用于回调,并且在 Grand Central Dispatch 并发库中大量使用。