我有一个我在if语句中使用的Bool。变量从NO开始,然后输入if语句,如果bool的值为NO,则执行该语句。然后我在if语句的末尾将值更改为YES,这样就不再执行标准的东西了。
我想要做的是以某种方式在最后改变该变量YES,但是在大约五秒之后将其改回NO。怎么办?
答案 0 :(得分:2)
您可以使用NSTimer
:
[NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(resetSomeBoolean:)
userInfo:nil
repeats:NO];
- (void) resetSomeBoolean:(NSTimer *) timer {
self.someBoolean = NO;
}
另外,请确保此属性(someBoolean
)为atomic
。
答案 1 :(得分:0)
也许设置如下:
... your code ...
myBool = YES; // set some senteniel.
[NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(resetMyBool:)
userInfo:nil
repeats:NO];
return;
}
并添加类似
的内容- (void) resetMyBool:(NSTimer*)meTimer {
myBool = NO;
}
到你的班级。但你确定你需要做到这一点 - 听起来容易受到竞争条件的影响。
谢谢,
DW传递。