在ios中如果要延遲執行某些程式碼,通常是使用performSelector:withObject:afterDelay的方式來做
但是如果只是想執行一兩行程式,又不想新增一個method的話,
可以參考Delayed Blocks in Objective-C這篇文章,
以我本身的例子,我想在xxx.m中使用的話,就在.m檔最上方直接加入:
@interface NSObject (PWObject)
- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
@end
@implementation NSObject (PWObject)
- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay
{
int64_t delta = (int64_t)(1.0e9 * delay);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delta), dispatch_get_main_queue(), block);
}
@end
然後再想用的地方用performBlock:afterDelay即可。
沒有留言:
張貼留言