2010-04-23 1 views
0

Итак, у меня есть весь этот код, который я отлаживал, и кажется, все в порядке. Я сделал изменчивую строку, и по какой-то причине я не могу заставить ее отображаться на моем ярлыке. отладчик говоритКак отправить измененную строку в NSTextField правильно?

"2010-04-22 22: 50: 26,126 Фибоначчи [24836: 10b] *** - [NSTextField SetString]: непризнанные селектор направлен например 0x130150"

Что не так с этим ? Когда я просто отправляю строку в NSLog, она получается прекрасной.

вот мой код, любая помощь будет оценена. «elementNum» - это comboBox, а «display» - это метка. Благодаря

#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

Не относится к вашей проблеме, но используйте appendFormat вместо appendString. – drawnonward

+0

Я думаю, что ваш вопрос немного запутан, вы говорите, что «display» - это метка, но сообщения об ошибках упоминают NSTextField? –

+0

обратный - спасибо. Anders Karlsson - это NSTextField, создатель интерфейса называет его ярлыком, поэтому я это сделал. Наверное, это запутанно, но я плохой. – Merle

ответ

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,"], который вернет объект с автореализацией, а также инициализирует его в том же сообщении.

+0

Большое спасибо. Я новичок в программировании, и я пытался научить себя Cocoa. Я искал пару вещей в документах, но, наверное, мне следовало искать NSTextField. Еще раз спасибо. – Merle