performSelectorInBackground:导致CocoaAsyncSocket崩溃

时间:2013-02-16 16:31:10

标签: iphone objective-c

我发现了performSelectorInBackground:几天前,我立即知道我的应用程序中哪个位置是完美的。

- (void)activate {

    waitForStartCode.text = @"Loading...";
    userNotifications.text = @"";
    timeRemaining.text = @"";
    [loadingNTP startAnimating];

    [self performSelectorInBackground:@selector(initializeEverything) withObject:nil];

}

当我的视图可见时调用此方法。之前,当NTP时间服务器连接到使用CocoaAsyncSocket时,我的应用程序冻结,直到此过程完成。我真的想要一个带有动画UIActivityIndi​​catorView的加载视图。

initializeEverything中的所有内容 - (void)工作正常,使用CocoaAsyncSocket执行NTP初始化。

[NetworkClock sharedNetworkClock];

我得到了:

enter image description here

enter image description here

enter image description here

即使我不熟练的眼睛,我可以告诉CocoaAsyncSocket并不打算在后台运行。

这有什么办法吗?

1 个答案:

答案 0 :(得分:1)

CocoaAsyncSocket支持异步网络。所以原则上你不需要自己的后台线程来阻止你的UI冻结:CocoaAsyncSocket将为你处理后台通信。

我不能说你是否以“阻塞”的方式使用框架,或者你正在做任何使你的UI阻塞的事情。但是,正如我所说,原则上你不需要自己管理后台线程。