以下是来源的一部分。 它调用了三次调度方法。
我想安排一个时间表。
如何取消安排选择的时间表方法?
-(id) init
{
if( (self=[super init] ))
{
int_count=0;
[self schedule:@selector(displayOne) interval:1.0]; 1) schedule
[self schedule:@selector(displayOne) interval:2.0]; 2) schedule
[self schedule:@selector(displayOne) interval:1.5]; 3) schedule
}
return self;
}
答案 0 :(得分:2)
调度调用相同方法的多个选择器确实没有意义。如果您在控制台窗口中查看,您会看到一条消息:
CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 1.00 to 2.00
CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 2.00 to 1.50
您可以做的是使用不同的方法名称安排选择器,如下所示:
[self schedule:@selector(displayOne) interval:1.0]; 1) schedule
[self schedule:@selector(displayTwo) interval:2.0]; 2) schedule
[self schedule:@selector(displayThree) interval:1.5]; 3) schedule
并且在displayTwo
方法中让它自行取消调度:
[self unschedule:@selector(displayTwo)];
答案 1 :(得分:0)
我认为你必须将调度程序分成3个不同的函数,而不是使用displayOne函数。
使用3种不同的功能,您将能够使用非计划功能。现在,你可以全部取消计划,也可以让它们全部运行。
[self unschedule:@selector(test1)];
答案 2 :(得分:0)
对于未预定的当前运行选择器,您可以_cmd
关键字
[self unschedule:_cmd];