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 を実行してから return ステートメントを実行する必要があります。

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 に答える