Mar*_*tin 6 thread-safety ios ios5
我在uiview子类中使用以下方法:
[self performSelector:@selector(timeout) withObject:nil afterDelay:20];
Run Code Online (Sandbox Code Playgroud)
按预期在20秒后调用该方法.在另一种方法中,我尝试使用以下代码取消执行请求:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(timeout) object:nil];
Run Code Online (Sandbox Code Playgroud)
我也试过了
[NSRunLoop cancelPreviousPerformRequestsWithTarget:self selector:@selector(timeout) object:nil];
Run Code Online (Sandbox Code Playgroud)
这两个消息都没有带来预期的结果,仍然会调用超时方法.任何人都能解释我的错误以及如何以正确的方式做到这一点?
来自奥地利马丁的欢呼声
两点
1. 两者是self同一个对象吗?
2. 是[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(timeout) object:nil];在您调用的同一线程上执行的吗[self performSelector:@selector(timeout) withObject:nil afterDelay:20];?
检查这两个问题。
| 归档时间: |
|
| 查看次数: |
11163 次 |
| 最近记录: |