0

icdcodeDictionary をバックリストに追加したいのですが、バックリストのすべての要素が変更されます。このプロセスの後、それらは最後に追加された項目と同じです。どうすればこれを解決できますか? このリンクをたどりました。http://iphonedevsdk.com/forum/iphone-sdk-development/88286-adding-object-to-nsmutablearray-changes-all-objects.html しかし、何も起こりませんでした。ありがとう。

NSMutableDictionary *icdcodeDictionary;
@property (nonatomic, retain) NSMutableArray *backlist;
[self.backlist addObject:icdcodeDictionary];

の結果

NSLog(@"バックリスト %d インデックス: %@",self.backlist.count-2,[icdcodeDictionary objectForKey:@"名前"]);

NSLog(@"バックリスト %d インデックス: %@",self.backlist.count-1,[icdcodeDictionary objectForKey:@"名前"]):

backlist 0 index: Urlar
backlist 1 index: Urlar

しかし、私はこれが欲しい:

backlist 0 index: Neoplazma
backlist 1 index: Urlar
4

2 に答える 2

1

印刷しているのと同じ辞書です。ごとに新しいものを作成する必要がありますaddObject:

[self.backlist addObject:[NSMutableDictionary dictionaryWithDictionary:icdcodeDictionary]];
于 2013-11-07T13:09:34.120 に答える
0

forloop内で辞書を設定しているときに問題が発生しました。forループ内で以下のコードのように記述する必要があります。

// here it is for loop
 for (i=0; i<2; i++)
 {
 // this dictinary needs to call how many times   
 you set object
  NSMutableDictionary * mut= 
 [NSMutableDictionary dictionary];
 // now set your object inside dictionary
 }
于 2013-11-07T13:08:31.403 に答える