1

NSNumber に変換したい NSSTRING に単純な値があります。私は自分のコードでこれを常に行っていますが、何らかの理由で今回は機能していません。これで何か問題があると思いますか?

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:
4

2 に答える 2

1

ScoresArray に追加するオブジェクトが、NSNumbers ではなく実際に文字列であることを確認してください。

于 2013-02-26T22:56:32.577 に答える
0

ありがとうございます。どうやら、scoreArray に nsnumber オブジェクトがあったことがわかりました。このコードでは、string から num へと行き来しすぎて、頭が爆発しそうです。下手な質問で申し訳ありません-できれば、今すぐ自分の質問に反対票を投じます...笑

于 2013-02-27T01:42:21.163 に答える