回答
如果fun
预计没有参数,你可以这样做:如果希望一个对象参数
[target performSelector:fun];
,你可以这样做:
[target performSelector:fun withObject:someObject];
如果它期望两个对象参数,您可以这样做:
[target performSelector:fun withObject:someObject withObject:anotherObject];
如果需要三个以上的参数,或者如果它预期不是对象的参数,你必须使用objc_msgSend
,由this answer解释。
非常感谢。你知道如何获得这个乐趣作为obj例如self.targetFun = fun; – user1052163 2012-08-17 17:43:05
- (id) init:(NSString*)fun{
[target NSSelectorFromNSString(fun)];
}
- (void) methodCaller{
[[MyClass alloc] init:NSStringFromSelector(@selector(method1))];
}
非常感谢。你知道什么是(SEL)类型的乐趣,例如我不能这样做“id targetFun = fun”; – user1052163 2012-08-17 17:54:34
选择器总是由计数器字符串表示。你能告诉场景,你可以在其中获得选择器的ID。好玩的是总是SEL类型选择,如果你想将它从1种方法传递作为一个对象以外,那么我们宁愿NSString的,因为苹果还与NSString的SEL的相互转换只提供了API。 – 2012-08-17 18:26:13
非常感谢你真的工作。 – user1052163 2012-08-18 00:45:52
您可以使用三种mehods此:
- 使用
performSelector:
,如:[target performSelector:fun withObject:nil];
- 使用
detachNewThreadSelector
这样的:[NSThread detachNewThreadSelector:fun toTarget:target withObject:nil];
,但它会在另一个线程上运行。 - 使用
NSInvocation
喜欢:
NSInvocation *inv = [[NSInvocation alloc] init];
[inv setSelector:fun];
[inv invokeWithTarget:target];
非常感谢你如何加载这个乐趣到另一点例如[singleton single] .fun = fun;这样我可以移动这个有趣的OBJ到另一个类的函数 – user1052163 2012-08-17 17:59:42
不能调用使用选择'.'或'[目的地选择]'这些方法。要么打电话给任何上述方法或其变体。如果你需要将选择器传递给另一个类,那么在那里创建一个'SEL'对象并将其传递给它。 – 2012-08-17 18:04:45
使用可以像NSString一样获得乐趣。然后可以将其用作对象,但在这两种情况下,都需要将SEL(伊娃)转换为对象。 “”运算符用于调用属性的getter或setter而不起作用。 – 2012-08-17 18:28:12
- 1. PHP乐趣codeing
- 2. 小strtok()乐趣
- 3. 砸堆栈的乐趣和利润,代码执行顺序
- 4. 固定的乐趣
- 5. 谜语的乐趣
- 6. AccessViolation调试乐趣
- 7. 与OpenLDAP的乐趣
- 8. 乐趣CSS花车
- 9. Match.fun错误(乐趣)
- 10. Firebase initializeApp(config);乐趣
- 11. CUDA蛮力乐趣
- 12. 如何理解Kotlin中的乐趣?
- 13. 在Scala中,乐趣_和乐趣之间的区别是什么
- 14. 如果方法“[ACLASS respondsToSelector:@selector(乐趣)”的乐趣有三个参数
- 15. C#向F#的乐趣
- 16. 黑莓 - 乐趣与FieldManagers
- 17. Regexp/htaccess重写乐趣
- 18. Mysql查询返回乐趣
- 19. 猛砸报价乐趣
- 20. Python tkInter条目乐趣
- 21. Mobile Safari - 乐趣与焦点()
- 22. 真理表的乐趣,Java
- 23. 红宝石乐趣循环
- 24. 乐趣Lambda表达式
- 25. 正则表达式乐趣
- 26. 游乐场执行失败:
- 27. $(sel).bind(“click”,$(sel).click(,$(sel).live(“click”,$(sel).on(“click”)有什么显着区别?
- 28. 乐趣与MySQL - 如何写有一个delete语句
- 29. Excel 2010宏与按钮的乐趣
- 30. 乐趣NatGeo PowerShell脚本...工作需要
我不能告诉你在问什么。 – Almo 2012-08-17 17:36:23