It blocks whatever thread sleepForTimeInterval is running on. Run it on another thread to simulate your server delay like this:
dispatch_queue_t serverDelaySimulationThread = dispatch_queue_create("com.xxx.serverDelay", nil);
dispatch_async(serverDelaySimulationThread, ^{
[NSThread sleepForTimeInterval:10.0];
dispatch_async(dispatch_get_main_queue(), ^{
//Your server communication code here
});
});