Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 方法代码的执行顺序不正确_Ios_Objective C_Methods_Svprogresshud - Fatal编程技术网

Ios 方法代码的执行顺序不正确

Ios 方法代码的执行顺序不正确,ios,objective-c,methods,svprogresshud,Ios,Objective C,Methods,Svprogresshud,我有两种方法。一种方法用于加载我的SVProgressHUD,第二种方法用于从我的coreData中获取数据并对其进行排序,然后将其显示在新的UITableView中。用户选择的是UITableViewCell,它调用: didSelectRowAtIndexPath 在这里我有两个方法调用,第一个是: [自动加载HUD] 此方法加载一个hud(它从不显示我是否在didSelectRowAtIndexPath中实现了第二个方法)。这是第二种方法: [自动加载和排序] 当我出于某种原因调用此方法时

我有两种方法。一种方法用于加载我的SVProgressHUD,第二种方法用于从我的coreData中获取数据并对其进行排序,然后将其显示在新的UITableView中。用户选择的是UITableViewCell,它调用:

didSelectRowAtIndexPath

在这里我有两个方法调用,第一个是:

[自动加载HUD]

此方法加载一个hud(它从不显示我是否在didSelectRowAtIndexPath中实现了第二个方法)。这是第二种方法:

[自动加载和排序]

当我出于某种原因调用此方法时,它会阻止SVProgressHud出现,但是如果我删除此方法调用,hud将正常加载


我想知道如何在第二个方法开始之前显示hud?如果你不在后台线程中添加昂贵的进程(如
loadAndSortArray
),那么所有视图都会在主线程中刷新

您可以将该方法放入:

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
    [self loadAndSortArray];
});

我建议深入研究实际显示HUD的调用,看看它是如何实现的。它可能是异步地调度调用,可能有一些不满足的条件。