2012-04-27 4 views
0

イムデータの抽出NSMuableDictionaryからのNSStringにし、このような文字列にcomperingしてみてください。データの抽出NSMuableDictionaryからのNSStringへと文字列の問題にcompering

NSDictionary *error = [[NSDictionary alloc]init]; 
    NSString *errorCode = [[NSString alloc]init]; 
    error = [sing.globalCallsDitionary valueForKey:@"Error"]; 
    NSLog(@"error code %@",[error valueForKey:@"error_code"]); 
    errorCode = [error valueForKey:@"error_code"]; 
    if ([errorCode isEqualToString:@"-1"]) { 

とき文が実行された場合、私はこのエラーは、アレイの話を取得するには、エラーは次のようになります。

2012-04-27 06:34:49.686 CallBiz[10319:707] error code (
    "-1" 
) 
2012-04-27 06:35:00.602 CallBiz[10319:707] -[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x16fc10 
2012-04-27 06:35:00.608 CallBiz[10319:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x16fc10' 
*** First throw call stack: 
(0x3541f88f 0x36846259 0x35422a9b 0x35421915 0x3537c650 0xb2a3 0x353793fd 0x32458faf 0x32458f6b 0x32458f49 0x32458cb9 0x324595f1 0x32457ad3 0x324574c1 0x3243d83d 0x3243d0e3 0x3667222b 0x353f3523 0x353f34c5 0x353f2313 0x353754a5 0x3537536d 0x36671439 0x3246be7d 0x2e61 0x28fc) 
terminate called throwing an exception 

それはNSArrayであるかのようにXcodeのが私のNSString *errorCode = [[NSString alloc]init];上で見ているようであるそれは、誰かがこれで私を助けることができますか?

+0

ステートメントに問題があるとは思わない... – Nit

+0

if文前後でチェックif文。 – Nit

答えて

2

errorCodeが文字列ではなく配列として指定されたため、エラーが発生します。あなただけの1オブジェクトがここに来ることを確信している場合は、使用することができます - それはしますがerrorCodeをを文字列オブジェクトとして定義されているため

if ([[errorCode objectAtIndex:0] isEqualToString:@"-1"]) 

それは、警告を通じて、動作します。そこで、どのデータが応答しているのかを確かめ、データ構造を適切に定義します。

+0

RIPありがとう、それが働いて、私はerrorCodeの定義をNSArrayにも変更しました –

+0

パーフェクト!!また、エラーコードが常に配列の最初のオブジェクトとして来たことを確認する必要があります。 – rishi

+2

複数のエラーコードがある可能性があることを示唆する配列であるため、注意が必要です。代わりに[errorCode containsObject:@ " - 1 ']のようなものを使用したいかもしれませんか? –

関連する問題