0

我的 iOS 应用程序中有以下代码:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [self performSelector: @selector(generateDataForDates:) withObject:paramArray afterDelay:0.1];
});

return self.dataArray;

应用程序先执行 return 语句,然后执行 'performselector',这会导致数据不一致。有没有人有任何线索?我需要先执行 performselector 然后返回语句。

4

1 回答 1

0

performSelector:withObject:afterDelay:将调度选择器在延迟之后执行,并且不会等到选择器执行完毕。它会立即返回。

这会起作用,但你为什么还要调度这个块呢?

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [self generateDataForDates:paramArray];
});

return self.dataArray;
于 2013-03-06T08:59:40.690 回答