@@ -1148,13 +1148,29 @@ -(CCTimer *) schedule:(SEL)selector interval:(CCTime)interval
1148
1148
return [self schedule: selector interval: interval repeat: CCTimerRepeatForever delay: 0 ];
1149
1149
}
1150
1150
1151
+ -(BOOL )unschedule_private : (SEL )selector
1152
+ {
1153
+ NSString *selectorName = NSStringFromSelector (selector);
1154
+
1155
+ for (CCTimer *timer in [_scheduler timersForTarget: self ]){
1156
+ if ([selectorName isEqual: timer.userData]){
1157
+ [timer invalidate ];
1158
+ return YES ;
1159
+ }
1160
+ }
1161
+
1162
+ return NO ;
1163
+ }
1164
+
1151
1165
-(CCTimer *) schedule : (SEL )selector interval : (CCTime)interval repeat : (uint) repeat delay : (CCTime) delay
1152
1166
{
1153
- NSAssert ( selector != nil , @" Argument must be non-nil" );
1154
- NSAssert ( selector != @selector (update: ) && selector != @selector (fixedUpdate: ), @" The update: and fixedUpdate: methods are scheduled automatically." );
1155
- NSAssert ( interval >= 0 , @" Arguemnt must be positive" );
1167
+ NSAssert (selector != nil , @" Selector must be non-nil" );
1168
+ NSAssert (selector != @selector (update: ) && selector != @selector (fixedUpdate: ), @" The update: and fixedUpdate: methods are scheduled automatically." );
1169
+ NSAssert (interval > 0.0 , @" Scheduled method interval must be positive. " );
1156
1170
1157
- [self unschedule: selector];
1171
+ if ([self unschedule_private: selector]){
1172
+ CCLOGWARN (@" Selector '%@ ' was already scheduled on %@ " , NSStringFromSelector (selector), self);
1173
+ }
1158
1174
1159
1175
void (*imp)(id , SEL , CCTime) = (__typeof (imp))[self methodForSelector: selector];
1160
1176
CCTimer *timer = [_scheduler scheduleBlock: ^(CCTimer *t){
@@ -1175,10 +1191,8 @@ - (CCTimer *) scheduleOnce:(SEL) selector delay:(CCTime) delay
1175
1191
1176
1192
-(void )unschedule : (SEL )selector
1177
1193
{
1178
- NSString *selectorName = NSStringFromSelector (selector);
1179
-
1180
- for (CCTimer *timer in [_scheduler timersForTarget: self ]){
1181
- if ([selectorName isEqual: timer.userData]) [timer invalidate ];
1194
+ if (![self unschedule_private: selector]){
1195
+ CCLOGWARN (@" Selector '%@ ' was never scheduled on %@ " , NSStringFromSelector (selector), self);
1182
1196
}
1183
1197
}
1184
1198
0 commit comments