ios性能选择器:withObject:afterDelay:在视图中加载冻结视图

ios性能选择器:withObject:afterDelay:在视图中加载冻结视图,ios,delay,viewdidload,performselector,Ios,Delay,Viewdidload,Performselector,我将视图控制器推入导航 在viewDidLoad方法中,我将此方法放在结束行: [self performSelector:@selector(startLoadAndParseXML) withObject:nil afterDelay:0.]; 和往常一样,在我的应用程序中的其他视图控制器中,视图控制器被推送,然后方法startLoadAndParseXML运行,并且应用程序不会被冻结。但是在只有一个视图控制器的情况下,我不知道为什么有时应用程序会冻结,并且视图只有在方法startLoad

我将视图控制器推入导航

在viewDidLoad方法中,我将此方法放在结束行:

[self performSelector:@selector(startLoadAndParseXML) withObject:nil afterDelay:0.];
和往常一样,在我的应用程序中的其他视图控制器中,视图控制器被推送,然后方法startLoadAndParseXML运行,并且应用程序不会被冻结。但是在只有一个视图控制器的情况下,我不知道为什么有时应用程序会冻结,并且视图只有在方法startLoadAndParseXML完成后才会被推送


谁能给我解释一下吗?谢谢

PerformSelector WithObject:afterDelay:
在当前运行循环上启动选择器,而不是在后台线程中,因此如果从主线程调用它,网络操作将冻结UI,

而不是在后台执行较差的选择器,对吗?我很惊讶这能起作用。是的,它在当前线程上执行。嗨,其他类上的相同网络操作不会冻结应用程序。我的应用程序在许多视图控制器上具有相同的startLoadAndParseXML操作,并且冻结只发生在一个类中。我想这是我的错,但我找不到。