iphone .objc_class_name错误

sol*_*sol 2 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:
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

Nik*_*uhe 7

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

这是添加框架的正确方法:

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

现在您应该能够为模拟器和设备构建.

编辑:

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

  • 在他的情况下,听起来他正在连接设备ARM框架,而不是i386模拟器版本,当他为模拟器构建时.他还应检查框架上的路径类型是否为"相对于当前SDK". (2认同)