AFNetworking を使用して、json で特定の値を取得しようとしています。値には数字のみが含まれており、NSString として受け取りたいです。受け取った値を比較すると、例外が発生します (例外については、この記事で後述します)
エラーを生成するコーディングは次のとおりです。
NSArray *overallGameResultsArray = [resultDictionary valueForKey:@"overall_game_results"];
winCountDictionary = [[NSDictionary alloc] init];
for (NSDictionary *gameResultsDictionary in overallGameResultsArray)
{
NSString *userId = [gameResultsDictionary valueForKey:@"winner_user_id"];
NSString *winCount = [gameResultsDictionary valueForKey:@"win_count"];
if ([winCount isEqualToString:@"0"])
{
NSLog(@"0 wins");
}
}
「if比較」がコメントされている場合、例外は発生しません。win_count は、json 応答の数字のみで構成されます。
以下は、私が得ている例外エラーです。
2012-10-10 15:41:35.086 FMB[3549:c07] -[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7230af0 2012-10-10 15:41:35.086 FMB[3549:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7230af0'
*** First throw call stack: (0x1638012 0x1345e7e 0x16c34bd 0x1627bbc 0x162794e 0x11e03 0x20583 0x1fab4 0x245053f 0x2462014 0x24527d5 0x15deaf5 0x15ddf44 0x15dde1b 0x26997e3 0x2699668 0x28d65c 0x2512 0x2445) libc++abi.dylib: terminate called throwing an exception