Developers coming to Objective-C from other languages are often accustomed
to creating separate threads to wait for tasks to finish. But as David
points out, that style is discouraged in Cocoa applications. Creating
threads leads to more error-prone application code, and blocking the main
thread will hurt the device's responsiveness.
Instead, iOS and Mac apps can rely on the asynchronous calls provided by
the operating system, along with the Objective-C blocks style of callback
to keep the source code looking linear and straightforward. The library
follows that design pattern as well. Application code can be written in a
sequential style, but no new threads are needed, nor does any thread need
to be blocked by synchronous calls.