所以我已经调试了所有这些代码,似乎没问题。我做了一个可变的字符串,由于某种原因我不能让它显示在我的标签上。调试器说
“2010-04-22 22:50:26.126 Fibonacci [24836:10b] *** - [NSTextField setString:]:无法识别的选择器发送到实例0x130150”
这有什么问题?当我把字符串发送到NSLog时,它很好。
这是我的所有代码,任何帮助将不胜感激。 “elementNum”是一个comboBox,“display”是一个Label。 感谢
#import "Controller.h"
@implementation Controller
- (IBAction)computeNumber:(id)sender {
int x = 1;
int y = 1;
NSMutableString *numbers = [[NSMutableString alloc] init];
[numbers setString:@"1, 1,"];
int num = [[elementNum objectValueOfSelectedItem]intValue];
int count = 1;
while (count<=num) {
int z = y;
y+=x;
x=z;
[numbers appendString:[NSString stringWithFormat:@" %d,", y]];
count++;
}
[display setString:numbers];
NSLog(numbers);
}
@end
`
答案 0 :(得分:2)
查看您收到的错误消息:
-[NSTextField setString:]: unrecognized selector sent to instance 0x130150"
这告诉你一件事。具体来说,NSTextField
没有-setString:
方法,尝试调用它会失败。
这是查看NSTextField
文档的提示。执行此操作时,您将看到没有方法可以设置字符串值。但是,文档还会向您显示NSTextField
继承自NSControl
,其中-setStringValue:
方法。
因此,您需要致电-setStringValue:
来设置NSTextField
的值。
[display setStringValue:numbers];
请注意,在您目前的代码中,您正在泄漏numbers
字符串对象。您使用-alloc
创建了它,因此您有责任释放它。
相反,您应该使用[NSMutableString stringWithString:@"1, 1,"]
创建它,它将返回一个自动释放的对象,并在同一消息中初始化它。