1

NSLog を使用した私の NSDictionary 出力には次のように表示されます。

{
    "filename" : "mytest100.txt",
    "filedesc" : "File Description here",
    "data" : [

    ]
 }

しかし、私がそうするNSString *filename = [dict objectForKey:@"filename"];と、この行でクラッシュします。

私は何を間違っていますか?これは些細なことのようです。

4

2 に答える 2

3

これを試して:

NSDictionary *d = [NSDictionary dictionaryWithObject:@"foo" forKey:@"bar"];
NSLog(@"%@", d);

出力は次のとおりです。

{
    bar = foo;
}

キーまたは値に引用符が記録されていないことに注意してください。キーと値が @"\"foo\"" の形式でない限り、私の推測では、実際にはそこに辞書はありません。

私なら、JSON を表す文字列にお金をかけます。クラッシュは、objectForKey: が文字列の認識されないセレクターであるためです。

于 2012-12-20T03:12:24.730 に答える
2

あなたが得ているエラーメッセージから、dict変数は ではNSDictionaryなく とを保持していNSStringます。

変数を割り当てる場所を探してコードを追跡するdictと、辞書ではない何かに設定されていることが確実にわかります。

于 2012-12-20T03:12:03.237 に答える