2013-02-26 2 views
1

У меня есть простая ценность в NSSTRING, которую я хочу преобразовать в NSNumber. Я делаю это все время в своем коде и по какой-то причине, на этот раз он не работает. Вы видите что-то не так с этим?сбой при использовании NSNumberFormatter для преобразования NSString в NSNumber

NSNumberFormatter * num_formatter = [[NSNumberFormatter alloc] init]; 
[num_formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber *score; 
NSString *mystr = [[player ScoresArray] objectAtIndex:currentKeeper - 1]; 


NSLog(@"here is my string: -%@-", mystr); 
score = [num_formatter numberFromString:mystr]; // crash occurs on this line. see error below... 
NSLog(@"now it is: %d", [score intValue]);  // it never gets to this line... 

Вот вывод из приведенного выше кода:

здесь моя строка: -3-

Здесь ошибка я получаю:

2013-02-26 17:21:48.912 Golf Whiz[50407:c07] -[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xcb5fa90 
2013-02-26 17:21:48.912 Golf Whiz[50407:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xcb5fa90' 
*** First throw call stack: 
+3

'mystr' - это' NSNumber', а не 'NSString'. Покажите, как вы определяете и присваиваете значение 'mystr'. – rmaddy

+0

Также ... используйте% i вместо% d на линии, которой она никогда не попадала, когда вы ее работаете ...% d для двойников ... вы взяли «intValue» (INTEGER), так что вы хотите, чтобы% i для целых чисел. –

+5

@AlbertRenshaw Нет, '% i' и'% d' - одно и то же - используется для 'int'. '% f' для' double'. – rmaddy

ответ

1

Убедитесь, что объекты, которые вы добавляете в ScoresArray, фактически являются строками, а не NSNumbers.

+1

Спасибо за вашу поддержку :) Это относится к разделу комментариев для дальнейшего использования, но продолжайте хорошую работу по оказанию помощи другим! –

0

Спасибо, все, как подозревается, выясняется, что у меня действительно было nsnumber объектов в scoresArray afterall. Я перешел из строки в число в этом коде настолько, что моя голова вот-вот взорвется. извините за хромой вопрос - я бы проголосовал за собственный вопрос, если бы мог ... lol