iphone .objc_class_name错误

时间:2009-07-07 06:56:32

标签: iphone frameworks

我几天来一直在与这个框架错误作斗争。我已经从iphone3.0sdk中包含了MessageUI框架并导入了头文件(MessageUI / MessageUI.h)

任何人都知道这个错误意味着什么?

collect2: ld returned 1 exit status
symbol(s) not found
literal-pointer@_OBJC@__cls_refs@MFMailComposeViewController 
".objc_class_name_MFMailComposeViewController", referenced from:

以下是构建日志的一些输出:

ld warning: in /Users/me/iphone/myApp/MessageUI.framework/MessageUI, missing required architecture i386 in file
Undefined symbols:
  ".objc_class_name_MFMailComposeViewController", referenced from:
      literal-pointer@__OBJC@__cls_refs@MFMailComposeViewController in myViewController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

2 个答案:

答案 0 :(得分:7)

您忘记链接到MessageUI.framework,或者您链接的版本错误。

以下是添加框架的正确方法:

  1. 双击目标
  2. 选择主标签
  3. 按框架部分中的加号按钮
  4. 添加框架

    现在你应该能够为模拟器和设备构建。

    编辑:

    来自ld的警告看起来像是将MessageUI.framework从模拟器SDK复制到了项目目录。删除它,ld应该找到正确的(当前SDK中的那个)。

答案 1 :(得分:0)

您不小心将iPhone SDK Framework复制到项目目录(磁盘上)。打开项目目录(将项目保存在磁盘上)并删除iPhone SDK Framework目录。

重建。