84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
我大概地知道NSInvocation的用法,但是我不是很清楚NSInvocation具体用处,平时也很少有见人用到。 我想知道NSInvocation除了能实现消息转发,还有没有其他特别妙的用处,或者说它还能用来实现哪些比较特殊的需求?
@OpenFibers 是NSInvocation,不是NSNotification啊!
认证高级PHP讲师
非说NSInvocation的好处的话~~ 1.
[obj performSelector:sel];
和
[invocation invoke];
的区别是:前者调用前需要持有一个obj和一个sel,后者仅需持有一个invocation。 2.NSInvocation貌似从MAC10.2就有,兼容性更宽一些(现在谁会写兼容那么老的软件?)
iOS上SDK4后此物被block取代了。
同样,在cocoa中开线程用performSelectorInBackground、performSelector:withObject:afterDelay:、NSOperationQueue或block比NSThread、posix thread更方便一些。当然NSThread、posix thread也是可以用的。
一点愚见,理解有误的话欢迎拍砖
非说NSInvocation的好处的话~~
1.
和
的区别是:前者调用前需要持有一个obj和一个sel,后者仅需持有一个invocation。
2.NSInvocation貌似从MAC10.2就有,兼容性更宽一些(现在谁会写兼容那么老的软件?)
iOS上SDK4后此物被block取代了。
同样,在cocoa中开线程用performSelectorInBackground、performSelector:withObject:afterDelay:、NSOperationQueue或block比NSThread、posix thread更方便一些。当然NSThread、posix thread也是可以用的。
一点愚见,理解有误的话欢迎拍砖