我目前正在使用

[NSObject cancelPreviousPerformRequestsWithTarget:self];


取消doneMoving:的performSelector。这引起了一个问题,因为我正在运行其他我不想取消的性能选择器。解决的办法是使用

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(doneMoving:) object:objectIDontKnow];


但我不知道与原始performSelector一起传递的对象。我希望能够取消所有doneMoving:请求,无论传递了什么对象,同时仍保留我的其他预定方法。谢谢!

最佳答案

尝试以其他方式重写代码,以免传递对象

- (void)moveObject {

    [self.objectToMove doSmth];

}

- (void)performMoveObjectInFuture:(id)moveObject {

    self.objectToMove = moveObject;
    [self performSelector:@selector(moveObject) withObject:nil afterDelay:2];

}

关于ios - NSObject cancelPreviousPerformRequestsWithTarget任何对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22131569/

10-11 14:34