UI はメイン スレッドでのみ更新する必要があることは承知していますが、表示されているビューに追加されていない限り、別のスレッドでサブビューを作成して追加することは可能ですか? メモリとパフォーマンスの問題が発生しますか? コード例を次に示します。
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:^{
// do some fancy calculations, building views
UIView *aView = ..
for (int i, i<1000, i++)
{
UIView *subView = …
[aView addSubview:subView];
}
// Update UI on Main Thread
[queue addOperationWithBlock:^{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// Update the interface
[self.view addSubview:aView];
}];
}];
}];