0

すべてのキーを配列に追加して辞書の片側に追加できることは知っていますが、辞書の特定のポイントに値を追加または挿入する方法に興味があります。私が今持っている方法では、新しいエントリのためのスペースを空けるために最後のエントリを上書きし続けるだけだと思います:

NSMutableDictionary *bookmarks = [[NSMutableDictionary alloc] init];
NSString *keyA = @"Stanford University";
NSString *keyB = @"Apple";
NSString *keyC = @"cs193p.com";
NSString *keyD = @"Stanford on iTunes";
NSString *keyE = @"Stanford Mail";
NSString *surlA = @"http://www.stanford.edu";
NSString *surlB = @"http://www.apple.com";
NSString *surlC = @"http://www.cs193p.stanford.edu";
NSString *surlD = @"http://www.itunes.stanford.edu";
NSString *surlE = @"http://www.stanfordshop.com";

NSURL  *urlA;
urlA = [NSURL URLWithString:surlA]; 
NSURL  *urlB;
urlA = [NSURL URLWithString:@"http://www.apple.com"]; 


[bookmarks setValue:urlA forKey: keyA];
[bookmarks setObject:urlB forKey: keyB];
//[bookmarks setObject:urlC forKey: keyC];
//[bookmarks setObject:urlD forKey: keyD];
//[bookmarks setObject:urlE forKey: keyE];

 NSLog(@"%@", [bookmarks valueForKey:keyA]);

出力は次のとおりです。

2010-01-13 11:08:51.484 割り当て_1b[6035:a0f] http://www.apple.com

4

1 に答える 1

5

コードがクラッシュするだけではないことに驚いています。ここを参照してください:

NSURL  *urlA;
urlA = [NSURL URLWithString:surlA]; 
NSURL  *urlB;
urlA = [NSURL URLWithString:@"http://www.apple.com"]; 

urlAに2回割り当てており、urlBには割り当てていません。これを修正すると、正しい値がログに記録されます。

これを行うことができることにも注意してください:

NSLog(@"dictionary: %@", anNSDictionary);

そして、辞書にあるすべてのキーと値のペアを参照してください。

于 2010-01-13T19:16:47.467 に答える