У меня есть простая ценность в 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:
'mystr' - это' NSNumber', а не 'NSString'. Покажите, как вы определяете и присваиваете значение 'mystr'. – rmaddy
Также ... используйте% i вместо% d на линии, которой она никогда не попадала, когда вы ее работаете ...% d для двойников ... вы взяли «intValue» (INTEGER), так что вы хотите, чтобы% i для целых чисел. –
@AlbertRenshaw Нет, '% i' и'% d' - одно и то же - используется для 'int'. '% f' для' double'. – rmaddy