私はGCDを学ぼうとしているので、GCDがどのように機能するかをまだ完全には理解していません。何らかの理由で、次のメソッドを呼び出した後、フレームレートが永続的に低下します。ディスパッチ関数を使用せず、メインループにデータを書き込むだけの場合、フレームレートは60のままです。理由はわかりません。
-(void)saveDataFile {
_hud = [MBProgressHUD showHUDAddedTo:self.parentView animated:YES];
_hud.labelText = NSLocalizedString(@"Saving data...", nil);
dispatch_queue_t myQueue = dispatch_queue_create("myQueueName", NULL);
dispatch_async(myQueue, ^(void) {
@autoreleasepool {
id data = [self.model getData];
if (data != nil) {
NSString *filePath = @"myPath";
[data writeToFile:filePath atomically:YES];
}
}
dispatch_async(dispatch_get_main_queue(), ^(void) {
[_hud hide:YES];
});
});
}