キー(int)と値(int)のペアをNSDictionaryオブジェクトに追加するにはどうすればよいですか?どのようにintとして取り出すことができますか?NSDictionaryから整数(キーと値)を追加して取得する方法
ありがとうございます!
キー(int)と値(int)のペアをNSDictionaryオブジェクトに追加するにはどうすればよいですか?どのようにintとして取り出すことができますか?NSDictionaryから整数(キーと値)を追加して取得する方法
ありがとうございます!
辞書のキーと値はオブジェクト参照(id
)である必要があります。したがって、整数をキーとして使用することはできません。代わりにNSNumber
であなたの整数をラップする必要があります。
[NSNumber numberWithInt:5]
その後、initWithObjects
初期化子のいずれかを使用して、あなたのNSDictionary
を初期化することができます。値、キー、値、キー.. nil形式のキー/値を受け入れるinitWithObjectsAsKeys:
イニシャライザを選択しました。
NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:[NSNumber numberWithInt:15], [NSNumber numberWithInt:5], nil];
値にアクセスするには、あなたが同じことを行う必要があります。
NSLog(@"%@", [dict objectForKey:[NSNumber numberWithInt:5]]);
EDIT:あなたのコメントによると、あなたがNSMutableDictionary、ないNSDictionaryのを使用しなければならないようです。同じことが、あなたの整数をラップに適用されていますが、setObjectメソッドを使用したいと思う:forKey方法:
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:[NSNumber numberWithInt:15] forKey:[NSNumber numberWithInt:5]];
はその助けをしていますか?
NSNumber
で包み:
int intKey = 1;
int intValue = 2;
[myDict setObject:[NSNumber numberWithInt:intValue] forKey:[NSNumber numberWithInt:intKey]];
NSLog(@"key: %i, value: %i", intKey, [[myDict objectForKey:[NSNumber numberWithInt:intKey] intValue]);
はEDIT:あなたが値を設定するNSMutableDictionary
を使用する必要があります。 NSDictionary
は作成後に変更できません。
コンパイラーは、#1行目で "numberWithInt:forKey not found(戻り値の型がidにデフォルト設定されています)"という文句を言います。 –
おそらく、intValueの後ろに閉じ括弧を忘れています。 – omz
あなたの質問にNSDictionaryが書かれています。必要なものはNSMutableDictionaryです。整数をラッピングすることについても同じことが適用されます。 setObject:forKeyメソッドを使用します。 – csano