我正在使用iOS,我希望在主线程上运行导入过程,同时显示进度。我以为我应该使用performSelectorOnMainThread,但这并没有提供' withDelay'参数。我是否可以确定,如果我目前在主线程上,将在主线程上执行以下代码?
- (void)tkContactsMultiPickerController:(TKContactsMultiPickerController *)picker didFinishPickingDataWithInfo:(NSArray *)contacts
{
[UIApplication sharedApplication].idleTimerDisabled = NO;
[UIApplication sharedApplication].idleTimerDisabled = YES;
[SVProgressHUD showWithStatus:[self importingString] maskType:SVProgressHUDMaskTypeBlack];
[self performSelector:@selector(importContacts:) withObject:contacts afterDelay:.1];
}
答案 0 :(得分:2)
是。 The documentation明确地说明了这一点:
在延迟后使用默认模式在当前线程上调用接收器的方法。
如果您需要从另一个主线程返回主线程,您也可以使用dispatch_after()
- 主线程are guaranteed上的任务将在主线程上运行。