gpt4 book ai didi

ios - 如何正确使用异步来正确显示 HUD 是这种方法吗?

转载 作者:行者123 更新时间:2023-11-28 19:58:16 25 4
gpt4 key购买 nike

并发、GCD、HUD、iOS

一些 GCD 专家可以告诉我如何更改以下方法,特别是“HUD AREA”吗?HUD 在需要上升约 45 秒时会闪烁几秒钟,而“HUD AREA”代码全部完成。我只需要在这里更正 GCD(异步)的使用。NSFetchedResultsControllers 在 DeepCopy 运行期间提供 tableView 控制,其中默认数据库中的新数据(唯一)被移动到用户现有的数据库中。此代码有效,但 NSLog 消息在 HUD 消失后很长时间内继续滚动。我卡住了。对不起,我在这方面很蹩脚。

非常感谢您阅读本文,马克

- (void)loadStore {

if (_store) {return;} // Don’t load store if it’s already loaded
iHungry_MeAppDelegate *appDel = (iHungry_MeAppDelegate*)[[UIApplication sharedApplication] delegate];
BOOL isMigrationNecessary = [self isMigrationNecessaryForStore:[appDel storeURL]];
if (isMigrationNecessary) { // DM Ver upgrade
[self performMigrationForStore:[appDel storeURL]]; // quick
}
BOOL newDataNeedsImporting =
[self isNewDefaultDataAlreadyImportedForStoreWithURL:appDel.storeURL
ofType:NSSQLiteStoreType]; // Data Ver upgrade // quick
if (newDataNeedsImporting) {

/* BEGIN HUD AREA */

[MBProgressHUD showHUDAddedTo:appDel.rootTableViewController.view animated:YES];
dispatch_async(dispatch_get_main_queue(), ^{
[self loadSourceStore]; // quick
[self deepCopyFromPersistentStore:nil]; // LONG
dispatch_async(dispatch_get_main_queue(), ^{
NSDictionary *options =
@{
NSMigratePersistentStoresAutomaticallyOption:@YES
,NSInferMappingModelAutomaticallyOption:@YES
};
NSError *error = nil;
DLog(@"Adding Main Store After DeepCopy");
_store = [_coordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil URL:[appDel storeURL]
options:options error:&error];
if (!_store) {NSLog(@"Failed to add store. Error: %@", error);
abort();
}
else{NSLog(@"Successfully added store: %@", _store);
}
[self setNewDefaultDataAsImportedForStore:_store];// in Store's MetaData

[MBProgressHUD hideHUDForView:appDel.rootTableViewController.view animated:YES];
});
});

/* END HUD AREA */

}else{
DLog(@"Normal Non-Upgrade Load.");

...
}
}

最佳答案

您对 dispatch_async 的第一次调用是使用主队列而不是后台队列。

将其更改为:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

关于ios - 如何正确使用异步来正确显示 HUD 是这种方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com