Обновление (сентябрь 2013 г.)
Прошло почти два года с тех пор, как я первоначально написал этот ответ, и многое изменилось. AFNetworking
собирается перейти на версию 2.0 и имеет процветающее сообщество разработчиков, тогда как ASIHTTPRequest
в значительной степени мертва. Кроме того, AFNetworking
имеет десятки великолепных вспомогательных библиотек и классов, доступных для обработки таких вещей, как OAuth, Amazon S3 и тому подобное. Он настолько популярен, что на нем доступно несколько книг.
Учитывая это, нет никакой причины продолжать использовать ASIHTTPRequest
. Мой оригинальный ответ ниже, так что если вы все еще заинтересованы, продолжайте читать - просто имейте в виду, что я теперь без сомнения рекомендую не использовать ASIHTTPRequest
и использовать что-то более современное (а именно, AFNetworking
, но другие варианты имеется).
Оригинальный ответ (декабрь 2011 г.)
Сколько времени у тебя есть? Вот мои мысли, хотя как субъективный вопрос я не думаю, что есть правильный или неправильный ответ.
Я возглавляю группу разработчиков, которая работает над коммерческими приложениями для крупных клиентов, и некоторые из моих коллег всегда ищут новые библиотеки, которые могут упростить задачу. В настоящее время я предполагаю, что подавляющее большинство наших сетей использует ASIHTTP
. Мы посмотрели на AFNetworking
около шести месяцев назад и решили, что в то время будем придерживаться того, что знаем. ASI существует уже некоторое время, и для него доступно гораздо больше документации и полезных советов. Это прочная кодовая база, и она существовала достаточно долго, чтобы завоевать популярность и уважение.
Сказано (и надеюсь, что люди, которые не согласны со всем, что я сказал выше, будут читать дальше!), Я думаю, если вы начинаете все заново, сейчас самое время перейти к чему-то другому. Даже разработчик из ASI так считает . Учитывая все изменения, которые произошли с iOS 5, я думаю, что современный активно поддерживаемый фреймворк, такой как AFNetworking
(и есть другие варианты, такие как RestKit), является хорошим выбором.
Теперь вы правы, говоря, что некоторые люди испытывают проблемы с использованием AFNetworking в своем приложении. Но в равной степени быстрый Google показывает много людей, у которых были проблемы с ASI (действительным или нет)! Я думаю, что с какой бы фреймворкой вы ни работали, у кого-то где-то будут проблемы с ней, либо из-за чего-то действительно неправильного с фреймворком, либо из-за собственных ограничений.
Так что, учитывая все это, я думаю, что я погрузлюсь в AFNetworking и посмотрю, как у вас получится! Одним из моих новогодних решений будет переход на новую сетевую библиотеку, и я думаю, что, вероятно, это будет AFNetworking.
Из комментария автора:
Небольшое обновление: мне действительно очень понравилось использовать AFNetworking, и во многих отношениях оно значительно лучше (возможно, не то слово: «уточнено», может быть), чем ASI. Тем не менее, вы не должны вдаваться в подробности, ожидая замены типа «нравится», и есть некоторые вещи, для которых вы можете рассмотреть другие варианты (Amazon S3, который ASI поддерживает из коробки, например). Но я, как правило, очень рад, и нахожу это понятной, хорошо документированной библиотекой. Так что если вы хотите перейти от ASI к чему-то другому, вы действительно не ошибетесь с AFNetworking ...