2011-08-19 14 views
39

NSArrayとNSDictionaryを深く入れ子にしているので、言い表せないほど時間がかかります。 [data objectatindex:0] valueForKey:@ "blah"] etcなどNSArrayとNSDictionaryのNSLogを美化する

構造を再帰的に記録する素晴らしいiOSカテゴリを知っている人は誰ですか、タイプを強調表示して値を表示しますか?

は少し多くを尋ねるかもしれないが、あなたはたぶん、このような:)

+0

?これはデバイスに表示されるのか、それともあなたのためだけに使用されるのでしょうか? –

答えて

43

を知っていることはありませんか?

for (id key in dictionary) { 
    NSLog(@"key: %@, value: %@ \n", key, [dictionary objectForKey:key]); 
} 

しかし、私はjsonFormatter(例えば)

EDITに貼り付けコピー&以外の出力は美しい取得のいずれか良い方法を考えることはできません。@Andrey StarodubtsevはXCodeのためのソリューションを持っています>以下の5.x:

NSLog(@"%@", dictionaryYouWantToPrint); 
+0

'(%@'指定子を使ってオブジェクトを 'NSLog()'に渡す方法について説明しますか? – Droppy

+0

@Droppyあなたはこの質問を意味しますか? http://stackoverflow.com/questions/2634099/basic-objective-c-syntax – Gotschi

1

はたぶん、あなたは

のように、iOS5を後にブロックを使用することができます
122

Hmm。私のために結果を次のような単純な

NSLog(@"%@", dictionaryYouWantToPrint); 

出力:

{ 
    id = 1; 
    matchCount = 0; 
    matchPattern = abcdef; 
    number = "123456"; 
    sessionID = 5; 
    status = Unknown; 
    timerStart = 1367229348; 
} 
+5

この回答にすべての票が含まれていないと思います... – memmons

+0

この回答は2年後に書かれましたが、この回答は完全に正しいものですが、ユーザーは鉱山を受け入れ、辞書がxcodeでどのように印刷されるかを変更した可能性があります。私はそれを削除する必要がありますか? idk – Gotschi

+0

@Gotschiあなたはそれを編集し、答えを更新することができます –

1

これはのNSLogせずにコンソールに出力します。あなたのブレークポイントは、あなたの辞書を下回った場合、デバッグ時

あなたは

NSDictionary * myDict = ...; 

PO myDict

コンソールを入力することができますし、コンソールで辞書を印刷されます。

あなたも、コンソール内の別の型にオブジェクトをキャストすることができます。

プレースメントリストは、Xcodeで表示されている方法と同様に

enter image description here

関連する問題