2012-01-24 6 views

答えて

15

あなたはNSDictionaryオブジェクトの任意の型を置くことができます。だから@"fred"はOKですが、1は整数ではないため、オブジェクトではありません。あなたは辞書に番号を入れたい場合は、NSNumberでラップ:

NSDictionary *header = { @"title": @"fred", @"count": @1 }; 
+2

興味深い。私はすべてがオブジェクトであるC#に慣れています。ありがとう。 – ChrisP

0

あなたはそれを持っていません。番号1はプリミティブであり、NSArrayオブジェクトはオブジェクトのみを保持できます。 "1"のNSNumberを作成し、それを保存します。

0

NSDictionaryは、それだけにObjective-Cのオブジェクトを含むことができる(例えばNSStringNSArrayように)、それはintfloat、又はchar*ようなプリミティブ型を含めることはできません。これらの制約があると、異種の辞書は完全に合法です。

あなたは、このようなキーまたは値として1として数を含める場合は、あなたがNSNumberでそれをラップする必要があります。

NSDictionary *header=[[NSDictionary alloc] initWithObjectsAndKeys: 
    @"fred", @"title", 
    [NSNumber numberWithInt:1], @"count", 
    nil]; 
0

唯一の要件は、それがオブジェクトであるです。コード内でオブジェクトを適切に処理するのはあなた次第ですが、おそらくキーに基づいてオブジェクトの型を追跡できます。

1はオブジェクトではありません。数字を辞書に入れる場合は、数値をNSNumberに変換したい場合があります。

関連する問題