Iphone 什么是“NSInvocation”?什么时候使用?
什么是Iphone 什么是“NSInvocation”?什么时候使用?,iphone,Iphone,什么是NSInvocation?何时以及如何使用它?是消息发送的具体化。换句话说,它是一个表示消息发送的对象 假设您的类Foo有一个名为-[Foo-Foo]的方法,并且有这样一个方法: -(void)doSomething { NSInvocation *inv = [NSInvocation invocationWithMethodSignature: [self methodSignatureForSelector: @selector(foo)]]; [inv setTarget:
NSInvocation
?何时以及如何使用它?是消息发送的具体化。换句话说,它是一个表示消息发送的对象
假设您的类Foo有一个名为-[Foo-Foo]的方法,并且有这样一个方法:
-(void)doSomething {
NSInvocation *inv = [NSInvocation invocationWithMethodSignature: [self methodSignatureForSelector: @selector(foo)]];
[inv setTarget: self];
[inv invoke];
}
然后说[自我食物]在功能上与说[自我食物]是一样的
你为什么要这么做?示例应用程序给出了一个想法。另一种可能是计划在将来发送消息,例如由NSTimer触发。我无法运行CubsPuzzle,[inv invoke]之间的区别是什么;[自福];为什么要使用[inv invoke];从某种意义上说,它们是相同的。从另一个意义上说,它们是截然不同的:您可以选择使用NSInvocation和NSTimer延迟调用,而不是立即向对象发送消息。或者,您可以像在CubePuzzle中一样,选择运行哪个选择器与调用该选择器分开(以提高可读性/可扩展性)。