【问题标题】:Why do I get this Warning/Error?为什么我会收到此警告/错误?
【发布时间】:2011-11-10 19:40:12
【问题描述】:

我已经将一些将字符串转换为数据的代码放在一起,然后将数据放入另一个文本字段。一切正常,但是当我运行程序并点击包含此代码的 IB Action 按钮时:

[InputData setStringValue:OutputString];

我收到此错误:

线程 1:程序接收到的信号:“SIGABRT”。

在 Xcode 底部的输出区域中,我收到以下消息:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSConcreteMutableData setStringValue:]:无法识别的选择器已发送到实例 0x62507e0”

为什么会这样? 警告告诉我:

找不到实例方法-setStringValue'(返回类型默认为id)

发生了什么,我查看了它,似乎它应该可以工作。我究竟做错了什么?我只是 Objective-C 的初学者。

谢谢,不胜感激。

【问题讨论】:

  • 你的 InputData 是什么类型的?它有 setStringValue 方法吗?

标签: objective-c error-handling warnings uncaught-exception


【解决方案1】:

根据调试器,您的 InputData 对象是 NSMutableData 的一个实例,它没有 setStringValue 方法。查看您的代码并确认您正在调用您真正尝试定位的对象的方法。

【讨论】:

  • 说得有道理,但我知道它目前的设置方式是我想要定位的方法。
【解决方案2】:

听起来 NSData 上有一个包含 setStringValue 方法的类别。类别实现文件的名称可能类似于 NSData-extras.m。确保该文件已添加到 Xcode(如果 Xcode 已知,则该文件是正在构建的目标的一部分)。

【讨论】:

  • 没错,它是 NSMutableData-AES.m 如何使它成为正在构建的目标?还是检查一下?
  • 右键单击项目文件并选择将文件添加到 。该对话框允许您选择文件应链接的目标。您可能只有一个目标(这很正常),这使得选择很简单;)
【解决方案3】:

假设你的 InputData 必须是 UITextField,试试这个:

[InputData setText:OutputString];

【讨论】:

  • 谢谢@Saran,我试过了,但似乎没有用。它只是给出了不同类型的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
相关资源
最近更新 更多