1.
最直接的方法performSelector:withObject:afterDelay:
这种方法的缺点:每次要为延时写一个方法
2.
@implementation NSObject (PerformBlockAfterDelay)
- (void)performBlock:(void (^)(void))block
afterDelay:(NSTimeInterval)delay
{
block = [[block copy] autorelease];
[self performSelector:@selector(fireBlockAfterDelay:)
withObject:block
afterDelay:delay];
}
- (void)fireBlockAfterDelay:(void (^)(void))block {
block();
}
@end
3.
void RunBlockAfterDelay(NSTimeInterval delay, void (^block)(void))
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*delay),
dispatch_get_current_queue(), block);
}
4.
[UIView animateWithDuration:0.0 delay:5.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
} completion:^(BOOL finished) {
//do stuff here
}];
5.
[[NSOperationQueue mainQueue] addOperationWithBlock:aBlock];
本文介绍了在Objective-C中实现延时执行的方法,包括直接调用selector、使用自定义扩展、dispatch_after函数和UIView动画等技术。通过实例演示了如何在不同场景下灵活运用这些方法来达到延时执行的效果。
2785

被折叠的 条评论
为什么被折叠?



