Objective-C延迟iOS 6调度中的一种方法\u获取\u当前\u队列已弃用
我正在使用Objective-C延迟iOS 6调度中的一种方法\u获取\u当前\u队列已弃用,ios,objective-c,Ios,Objective C,我正在使用dispatch\u after()和dispatch\u get\u current\u queue()来延迟当前的方法。例如,延迟1秒: dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{ [self someMethod]; }); 由于iOS 6不推荐使用dispatch\u get\u current\u
dispatch\u after()
和dispatch\u get\u current\u queue()
来延迟当前的方法。例如,延迟1秒:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
[self someMethod];
});
由于iOS 6不推荐使用dispatch\u get\u current\u queue()
类似的问题,但仍然使用不推荐的方式。谢谢
编辑:
从Peter Segerblom的回答中可以看出:
// Without updating UI
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"Hello World");
});
// updating UI
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[imageView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:imageView];
});
干杯 我认为您应该使用dispatch\u get\u global\u queue()
。我想应该也是这样。如果您只想延迟该方法,而不想在另一个que中运行,则可以使用dispatch\u get\u main\u queue()
。请记住,如果您不在主队列中,则无法更新用户界面。谢谢,dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0)
和dispatch\u get\u main\u queue()
都能很好地工作。