_cmd在Objective-C的方法中表示当前方法的selector,正如同self表示当前方法调用的对象实例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//比如需要打印当前被调用的方法,可以在一个方法中添加:
NSLog(
@"%@ call"
,NSStringFromSelector(_cmd));
//会输出类似
//2013-01-10 11:25:46.902 TDDataViewer[855:303] applicationDidFinishLaunching: call
//这样的内容。
//在cocos2d中,_cmd通常用于定时调用某个函数(schedule)
//比如下面方法利用_cmd能够不定时地调用某个函数
-(
void
) scheduleUpdates {
// schedule the first update as usual
[
self
schedule
:
@selector
(irregularUpdate:)
interval
:
1
];
}
-(
void
)
irregularUpdate
:(ccTime)delta {
// unschedule the method first [self unschedule:_cmd];
// I assume you’d have some kind of logic other than random to determine
// the next time the method should be called
float
nextUpdate = CCRANDOM_
0
_
1
() *
1
0
;
// then re-schedule it with the new interval using _cmd as the selector
[
self
schedule
:_cmd
interval
:nextUpdate];
}
|