6

我收到此错误:

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

4 回答 4

10

我会看一下 Target 中的 Build Phases 部分。在“编译源”下,确保看到 ASIHTTPRequest 和 SBJson 的 .m 文件。有时,当您将外部类拖到项目中时,即使您选中复选框以将文件复制到项目中,它们也不会进入这些编译源。当您将文件拖入 Xcode 时,会出现一个复选框以将文件添加到目标。如果未选中此项,该文件将不会进入编译源。删除文件并重新添加它们,确保选中此文件(或者如果您愿意,可以手动添加 .m 文件)。

于 2012-04-09T16:10:26.360 回答
4

对于 ASIHTTP 请求,添加以下框架:

  • libz.1.2.5.dylib
  • 系统配置
  • UIKit
  • 基础
  • 核心图形
  • 移动核心服务
  • CF网络

如果您在 iOS 5 或更高版本中使用 ASIHttp 类,则需要通过使用ASI API 类为ASIHttpRequestProject-> Build Phases -> Compile Sources 中的类关闭 ARC 。-fno-objc-arc

希望它能解决问题。

于 2012-09-24T08:54:51.887 回答
3

我有同样的问题,但是当我包含以下框架时在此处输入图像描述

它现在工作正常..不要忘记在编译源中包含 -fno-objc-arc在此处输入图像描述

最好的祝愿.......

于 2012-07-27T04:36:33.193 回答
0

对于 ASIHTTPRequest 错误,听起来您还没有将 ASIHTTPRequest.m 添加到您的项目中。

(或者您添加了 ASIHTTPRequest.m,但忘记提及 xcode 发出的关于 ARC 的 40 亿个错误 - 请参阅为什么我的 ASIHTTPRequest 文件显示 ARC 错误?

于 2012-04-09T15:57:12.327 回答