【发布时间】:2011-01-23 13:05:35
【问题描述】:
场景出现在我有一个对象存储外部@selector 以供以后使用的地方。按照设计,我希望能够添加两种选择器。简单的一种,没有参数,如[object add:@selector(doSomething)],更复杂的一种,有一个参数,如[object add:@selector(doSomething:)](注意冒号)。假设选择器存储在变量SEL mySelector 中。
在执行过程中,我需要在[anotherObject performSelector:mySelector] 或[anotherObject performSelector:mySelector withObject:userInfo]] 之间做出选择。
我实现此决定的方式是提供一个 BOOL 标志,该标志冗余地存储性能是否应该带有或不带有额外参数。然而,虽然我在文档中找不到这个,但我觉得我也应该能够向选择器询问类似 -(BOOL)needsParameter 的问题。例如,我知道 UIGestureRecognizer 的 addTarget:action: 以某种方式自动进行了这种区分。
有人能指出我正确的方向吗?
【问题讨论】:
-
真是个骗子!我今天还学了一个新词,它是
arity:) 谢谢 Yuras!
标签: objective-c selector introspection