cocos2d中有3種回調方式:CCCallFunc、CCCallFuncN和CCCallFuncND
其中,他們有什么區別呢?
這里我稍微總結下,不對的歡迎討論和拍磚!
看源代碼的excute方法,我總結下面3點:
1. CCCallFunc
- -(void) execute
- {
- [targetCallback performSelector:selector];
- }
CCCallFunc是執行對應的回調方法,其中回調方法不可帶參數。
2. CCCallFuncN
- -(void) execute
- {
- [targetCallback performSelector:selector withObject:target];
- }
CCCallFuncN多帶一個參數,而參數本身是動作Aciton本身。就像UIButton那樣,我們可以@selector(btnUpInside:),帶的參數就是UIButton本身。
3. CCCallFuncND
- -(void) execute
- {
- [invocation_ setArgument:&target atIndex:2];
- [invocation_ setArgument:&data atIndex:3];
- [invocation_ invoke];
- }
CCCallFuncND帶2個參數,一個是動作Action本身,一個是你自己定義的回調函數的參數。