84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我大概地知道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也是可以用的。
一点愚见,理解有误的话欢迎拍砖