написать приложение iOS 5.1, использующее веб-сервис

Я новичок в программировании iOS и пытаюсь создать приложение iOS 5.1, которое взаимодействует с сервером для получения информации из базы данных. Я заставил сервер возвращать необходимую информацию из базы данных, следуя этому руководству: http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app

Но затем я попытался следовать другой половине руководства того же парня: http://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service

В этом мы используем JSON, ASIHTTPRequest и MBProgressHUD, но я получаю много ошибок, когда запускаю это, потому что ASIHTTPRequest больше не поддерживается в iOS 5.1.

Может ли кто-нибудь указать мне правильное направление здесь? Вы можете показать мне другой учебник, который работает для iOS 5.1, это было бы здорово. Я посмотрел, но я не могу найти.

Спасибо


person Yep_It's_Me    schedule 30.07.2012    source источник


Ответы (2)


ASIHTTPRequest, скорее всего, возвращает ошибки в вашем приложении iOS 5.1, потому что вы используете ARC. ASIHTTPRequest не был написан в ARC, поэтому выдает массу ошибок. Но есть простой обходной путь:

  1. На панели групп и файлов Xcode 4 выберите файл проекта в верхней части списка.
  2. Выберите цель на левой панели.
  3. Теперь вы должны увидеть список всех файлов реализации (.m), на которые ссылались и которые были скомпилированы в ходе выполнения программы.
  4. Дважды щелкните файлы реализации для ASIHTTPRequest и добавьте следующий флаг компоновщика: -fno-objc-arc. Этот флаг компоновщика действует как мост между старыми файлами без ARC и вашим проектом на основе ARC.

Хотя могут оставаться остаточные предупреждения, этот трюк должен удалить все другие сообщения об ошибках, связанные с ASIHTTPRequest.

person The Kraken    schedule 30.07.2012
comment
Прежде чем я это сделаю, у меня будет 4 ошибки, а после того, как я это сделаю, у меня будет 20. Мне нужно только добавить флаг в ASIHTTPRequest.m? или все файлы .m, начинающиеся с ASI...? - person Yep_It's_Me; 31.07.2012
comment
Используете ли вы ARC в своем проекте? - person The Kraken; 31.07.2012
comment
Некоторые из этих ошибок говорят о правилах литья ARC и ограничениях ARC, но я на самом деле не добавил ARC, я не думаю. Как вы говорите? - person Yep_It's_Me; 31.07.2012
comment
Набираете ли вы вручную retain и release при работе с объектами в ходе работы вашего приложения? - person The Kraken; 31.07.2012
comment
нет. Это не позволит мне. Я полагаю, это означает, что я использую ARC. Так почему же он не работает, когда мы связываем с ним старые не-ARC-файлы? - person Yep_It's_Me; 31.07.2012
comment
Странно, надо подумать над этим. Когда я использовал ASIHTTPREQUEST, я не сталкивался с этими проблемами после добавления флага компоновщика. Почему бы нам не попробовать это: опубликовать фотографии ошибок до и после добавления флага компоновщика. Тогда мне будет легче помочь вам. - person The Kraken; 31.07.2012
comment
OK. Вот ошибки перед флажками: До, А здесь после: после - person Yep_It's_Me; 31.07.2012
comment
Извините за задержку — вы забыли c во флаге компоновщика -fno-objc-arc. Добавьте это, и вы должны быть хорошими. - person The Kraken; 13.08.2012
comment
Лол, это смущает. Спасибо - person Yep_It's_Me; 21.08.2012

Когда я следовал тому же учебнику, я получил много ошибок. и сборка продолжала давать сбои, пока я не сообщил, что это было потому, что libz.1.2.3.dylib там не было. Если вы перейдете к этапам сборки, удалите это из списка и добавьте libz.1.2.5.dylib, все мои работали первыми, и я получил приложение, работающее полностью :)

person MarkP    schedule 28.11.2012