Pur*_*irl 27 cocoa objective-c wait
在Cocoa中等待特定时间的方式是否比我在下面提出的更直接?
- (void) buttonPressed {
[self makeSomeChanges];
// give the user some visual feedback and wait a bit so he can see it
[self displayThoseChangesToTheUser];
[self performSelector:@selector(buttonPressedPart2:) withObject:nil afterDelay:0.35];
}
- (void) buttonPressedPart2: (id)unused {
[self automaticallyReturnToPreviousView];
}
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,这段代码没有任何功能问题 - 我唯一的牛肉是风格的.在我的情况下,流程很简单,它可以工作,但尝试封装它或抛出一些条件,事情可能变得丑陋.有点唠叨我,我无法找到一种方法等待,然后回到像这个(虚构)示例的代码中的相同点:
- (void) buttonPressed {
[self doStuff];
[UIMagicUnicorn waitForDuration:0.35];
[self doStuffAfterWaiting];
}
Run Code Online (Sandbox Code Playgroud)
Bra*_*son 68
有
usleep(1000000);
Run Code Online (Sandbox Code Playgroud)
和
[NSThread sleepForTimeInterval:1.0f];
Run Code Online (Sandbox Code Playgroud)
两者都会睡1秒钟.
Jas*_*ore 10
这是NSTimer的做法.它可能比您正在使用的方法更加丑陋,但它允许重复事件,所以我更喜欢它.
[NSTimer scheduledTimerWithTimeInterval:0.5f
target:self
selector: @selector(doSomething:)
userInfo:nil
repeats:NO];
Run Code Online (Sandbox Code Playgroud)
你想避免像usleep()那样只会挂起你的应用程序并让它感觉不响应.
| 归档时间: |
|
| 查看次数: |
39596 次 |
| 最近记录: |