回答
如果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. 砸堆栈的乐趣和利润,代码执行顺序
- 3. Firebase initializeApp(config);乐趣
- 4. 与OpenLDAP的乐趣
- 5. Match.fun错误(乐趣)
- 6. 乐趣CSS花车
- 7. 在Scala中,乐趣_和乐趣之间的区别是什么
- 8. 如果方法“[ACLASS respondsToSelector:@selector(乐趣)”的乐趣有三个参数
- 9. 黑莓 - 乐趣与FieldManagers
- 10. Mysql查询返回乐趣
- 11. Python tkInter条目乐趣
- 12. 猛砸报价乐趣
- 13. 乐趣Lambda表达式
- 14. 乐趣与MySQL - 如何写有一个delete语句
- 15. 确定最大乐趣的算法
- 16. 更多C++多重继承的乐趣
- 17. 将子句转换为乐趣
- 18. Moq和异步使用LazyCache的乐趣
- 19. 更多的PHP MySQL的INSERT乐趣
- 20. Haskell的数学式系统的乐趣
- 21. 科特林协程VAL VS乐趣
- 22. JAVA_HOME环境变量和Java JDK乐趣
- 23. 试图修改Videocapture :: retrieve()乐趣
- 24. 使用最大公约数乐趣
- 25. C#评估和演示ASPX乐趣
- 26. * LONG *执行时间 - 共同兴趣
- 27. 如何把“SEL”和“id”转换为NSString?
- 28. 如何从目标文件(Mach-o)中获取SEL(@selector())? SEL如何存储在Mach-o中?
- 29. 如何从警报乐趣英特尔XDK删除的文件名
- 30. 如何区分jQuery中id为多个锚点标签的onclick乐趣
我不能告诉你在问什么。 – Almo 2012-08-17 17:36:23