0
什麼我有是語義performSelectorOnMainThread的:withObject:waitUntilDone:
- (void)startTheBackgroundJob {
1.NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
2.[NSThread sleepForTimeInterval:3];
3.[self performSelectorOnMainThread:@selector(makeMyProgressBarMoving) withObject:nil waitUntilDone:YES];
4.//[self makeMyProgressBarMoving];
5.[pool release];
}
- (void)makeMyProgressBarMoving {
float actual = [threadProgressView progress];
threadValueLabel.text = [NSString stringWithFormat:@"%.2f", actual];
if (actual < 1) {
threadProgressView.progress = actual + 0.01;
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO];
}
else threadStartButton.hidden = NO;
}
在starTheBackgroundJob的行號4,您可以設置waitUntilDone = YES
(或沒有)值。
予讀出的基準和它們表明:
等待
一個布爾指定是否當前線程塊之後在主 線程在接收器執行 與指定選擇直到。指定YES阻止此線程;否則,給 指定NO,立即返回此方法。 如果當前線程也是主線程,並且您爲此參數指定了YES,則會立即傳遞並處理消息 。
我的問題是:
- 什麼在這裏指定的選擇是(在這個例子中)?
- 另外問題。當你設置
waitUntilDone = YES
會發生什麼。我嘗試過,但我沒有看到任何區別。
請重新格式化您的問題,以正確使用mini-Markdown,SO的格式化語法。 –