我目前正在使用
[NSObject cancelPreviousPerformRequestsWithTarget:self];
取消我的执行选择器doneMoving:
。这会导致一个问题,因为我正在运行其他我不想取消的 performSelector。解决方案是使用
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(doneMoving:) object:objectIDontKnow];
但我不知道用原始执行选择器传递的对象。我希望能够取消所有doneMoving:
请求,无论传递了什么对象,同时仍然保持我的其他计划方法。谢谢!
尝试以不同的方式重写代码,这样就不会传递对象
- (void)moveObject {
[self.objectToMove doSmth];
}
- (void)performMoveObjectInFuture:(id)moveObject {
self.objectToMove = moveObject;
[self performSelector:@selector(moveObject) withObject:nil afterDelay:2];
}