将方法/函数作为目标C中的args传递

时间:2010-03-29 07:29:18

标签: objective-c macos asynchronous callback selector

我是Objective C的新手,我正在尝试实现一个与回调一起使用的异步库。我需要找到一种方法将回调方法作为args传递给我的异步方法,以便在任务完成时可以调用回调。

在Objective C中实现这一目标的最佳方法是什么?在Python中,例如我可以轻松地传递一个函数,但在Objective C中,似乎选择器是可行的方式(?)。

有人能指出我可以获得一些想法的例子吗?

提前致谢。

2 个答案:

答案 0 :(得分:5)

选择器是一种方法......另一种方法是创建协议并要求API的调用者提供实现协议的“委托”对象。然后,您可以在已给定的委托对象上调用该协议所需的选择器。每个都有其优点和缺点。

使用选择器的示例:NSThread:detachNewThreadSelector:toTarget:withObject

使用代理的示例:NSXMLParser:setDelegate + NSXMLParser:parse

答案 1 :(得分:0)

我想我在this question找到了我的问题的答案。

Apple开发者网站上的

This example code非常有用。