2011-09-05 79 views
0

我已将放在一起的一些代码将字符串转换为数据,然后将数据放入另一个文本字段。一切工作正常,但是当我运行该程序,然后点击与IB动作按钮包含此代码:为什么我会收到此警告/错误?

[InputData setStringValue:OutputString]; 

我得到这个错误:

主题1:计划接收的信号:“SIGABRT” 。

,并在Xcode中底部的输出区域我得到这个消息:

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

为什么会发生这种情况? 警告却对我说:

实例方法-setStringValue”未找到(返回类型默认为ID)

这是怎么回事,我看着它,它似乎像它应该工作。我究竟做错了什么?我只是Objective-C的初学者。

谢谢,任何感激。

+0

什么是InputData? – jrturton

+0

你的InputData是什么类型?它有一个setStringValue方法吗? – Saran

回答

1

听起来像NSData上的一个类别,其中包括一个setStringValue方法。类别实现文件可能被命名为类似NSData-extras.m。确保文件已被添加到Xcode中(并且如果Xcode已知,则是正在构建的目标的一部分)。

+0

这是正确的,它是NSMutableData-AES.m如何使它成为正在构建的目标?或者检查它是什么? –

+0

右键单击项目文件并选择添加文件到。该对话框可让您选择文件应链接的目标。你可能只有一个目标(这很正常),这使得选择变得简单;) –

0

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

[InputData setText:OutputString]; 
+0

谢谢@Saran,我试过了,但我似乎没有工作。它只是给出了一种不同类型的错误 –

2

根据调试你的InputData对象是NSMutableData,它不具有setStringValue方法的一个实例。仔细检查你的代码并确认你正在调用你真正想要的对象的方法。

+0

这是有道理的,但我知道它目前设置的方式是我想要的方法。 –

相关问题