0

私はこのコードを持っていて、インターネットを検索して問題ないことを見つけましたが、私とはうまくいきません

    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    .....
    NSLog(@"%@",[dict objectForKey:@"STATUS"]);

    if ([[dict objectForKey:@"STATUS"] isEqualToString:@"Y"]) {

       NSLog(@"Done");

    }

NSLog は、if ステートメントで動作する必要がある Y を示しています

4

1 に答える 1

3

あなたがするとき:

 [dict setObject:[arr objectAtIndex:1] ...

これは、文字列をオブジェクトとして辞書に追加していると思います。NSLogは、各オブジェクトに「description」メッセージを送信して文字列値に変換するため、NSLog行が機能しています。あなたは同じことをすることができます。

これを変更してみてください:

if ([[dict objectForKey:@"STATUS"] isEqualToString:@"Y"])

これに:

if ([[[dict objectForKey:@"STATUS"] description] isEqualToString:@"Y"]) 

これにより、比較を行う前に、objectForKey:によって返されるオブジェクトの文字列値が取得されます。

比較を破棄する空白がある可能性があると思われる場合は、次のように、比較する前に文字列をトリミングしてください。

if ([[[dict objectForKey:@"STATUS"] stringByTrimmingCharactersInSet:
    [NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@"Y"])
于 2012-09-09T22:29:42.447 に答える