objectiveccoder001
objectiveccoder001

Reputation: 3031

performSelectorInBackground: causing crash with CocoaAsyncSocket

I discovered performSelectorInBackground: a couple days ago, and I immediately knew a spot in my app where this would be perfect.

- (void)activate {

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

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

}

This is called when my view is visible. Before, while the NTP time servers were being connected to using CocoaAsyncSocket, my app froze until this process was completed. I really want a loading view with an animated UIActivityIndicatorView.

Everything in the initializeEverything -(void) works fine, exept the NTP initialization using CocoaAsyncSocket.

[NetworkClock sharedNetworkClock];

I get a :

enter image description here

enter image description here

enter image description here

Even with my unskilled eye, I could tell that CocoaAsyncSocket was not meant to be run in the background.

Is there any way around this?

Upvotes: 0

Views: 340

Answers (1)

sergio
sergio

Reputation: 69047

CocoaAsyncSocket supports asynchronous networking. So in principle you do not need a background thread yourself to prevent your UI from freezing: CocoaAsyncSocket will handle communication in background for you.

I cannot say if you are using the framework in a "blocking" way or you are doing anything else that is making your UI block. But, as I said, in principle you do not need to manage a background thread yourself.

Upvotes: 1

Related Questions