为什么我会收到此警告/错误?

时间:2011-09-05 18:41:06

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

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

[InputData setStringValue:OutputString];

我收到此错误:

主题1:程序接收信号:“SIGABRT”。

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

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

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

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

发生了什么事,我已经查看了它,似乎它应该有效。我究竟做错了什么?我只是Objective-C的初学者。

谢谢,感激不尽。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

假设您的InputData必须是UITextField,请尝试:

[InputData setText:OutputString];