Ошибка с iOS 5.1, когда я использую ASIHTTPRequest и SBJSON

Я получаю эту ошибку:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ASIHTTPRequest", referenced from:
      objc-class-ref in FirstViewController.o
  "_OBJC_CLASS_$_SBJsonParser", referenced from:
      objc-class-ref in FirstViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Обратите внимание, что я добавил базовую графику фреймворков, конфигурацию системы, мобильные сервисы ядра,libz.dylib,libz.1.2.5.dylib,CF Network,UI Kit и Foundation. Я обыскал все форумы и провел почти 4 дня, но просто не нашел причину.

Когда я комментирую мои строки кода ASIHTTPRequest и SBJSON, он работает нормально. Я добавил все классы для ASIHTTPRequest и SBJSON и проверил трижды. Кто-нибудь может подсказать, что я делаю не так?

4 ответа

Я хотел бы взглянуть на раздел фаз сборки в вашей цели. В разделе "Исходники компиляции" убедитесь, что вы видите файлы.m для ASIHTTPRequest и для SBJson. Иногда, когда вы перетаскиваете внешние классы в проект, даже если вы установите флажок для копирования файлов в ваш проект, они не попадают в эти исходные коды компиляции. Когда вы перетаскиваете файл в Xcode, появляется флажок, чтобы добавить файл к цели. Если этот флажок не установлен, файл не попадет в источники компиляции. Удалите файлы и повторно добавьте их, убедившись, что этот файл отмечен (или вы можете добавить файлы.m вручную, если хотите).

Для запроса ASIHTTP добавьте следующие рамки:

  • libz.1.2.5.dylib
  • Конфигурация системы
  • UIKit
  • Фонд
  • CoreGraphics
  • MobileCoreServices
  • CFNetworks

Если вы используете классы ASIHttp в iOS 5 или новее, вам нужно отключить ARC для ASIHttpRequest классы в Project-> Build Phases -> Compile Sources с помощью -fno-objc-arc для классов API ASI.

Надеюсь, это решит проблему.

У меня была такая же проблема, но когда я включил следующую структуру

теперь он работает нормально. Не забудьте включить -fno-objc-arc в исходный код компиляции

С наилучшими пожеланиями.......

В случае ошибки ASIHTTPRequest, похоже, вы не добавили ASIHTTPRequest.m в свой проект.

(Или вы добавили ASIHTTPRequest.m, но забыли упомянуть 4 миллиарда ошибок, которые xcode генерирует в отношении ARC - см. Почему в моих файлах ASIHTTPRequest отображаются ошибки ARC?)

Другие вопросы по тегам