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.