Я заметил, что если я создаю NSURLConnection и запускаю запрос, все хорошо. Мои методы делегата вызывают, и последний метод делегата вызывается хорошо после завершения блока кода, вызывающего соединение. Отлично.
Это наводит меня на мысль, что соединения асинхронные, что означает, что они многопоточные. Это верно? Могут ли они быть асинхронными, но в одном потоке? Нет, это безумие - верно?
Но в каждом примере, который я видел, используя NSOperation, NSURLConnections всегда запланированыInRunLoop, после чего [runLoop runMode ...] вызывается в цикле while.
Может кто-нибудь объяснить, что именно здесь происходит? Мне кажется, что в первом случае требуется создание вторичных потоков, но нет ручного вызова цикла выполнения (в этих потоках), в то время как NSOperation (в новом потоке) действительно требует ручного вызова цикла выполнения.
Почему для первого случая не требуется ручной вызов?