在 NSMutableDictionary 中使用相同的键保存多个值,然后将字典存储在 NSMutableArray 中

Save multiple values with same keys in NSMutableDictionary then store the dictionary in NSMutableArray

我知道这个问题已被问过很多次,但没有得到解决方案,或者我可能不明白这就是发布问题的原因。

for (int web=0; web<[web_arr count]; web++) {
    AdditionalBookmark *web_book=[[AdditionalBookmark alloc]init];

    UITextField *txtNam = (UITextField*)[self.view viewWithTag:1100+web];
    NSString *txtName = txtNam.text;
    UITextField *txtLin = (UITextField*)[self.view viewWithTag:1200+web];
    NSString *txtLink = txtLin.text;


       if ((txtName && txtName.length > 0)||(txtLink && txtLink.length > 0))
       {
        web_book.additionalBookmark_Name = txtName;
        web_book.additionalBookmark_Link= txtLink;
        web_book.contactDetails_Id=self.contactDetailsinfo.contactDetailsId;
        web_book.additionalBookmark_Id=[[[web_arr objectAtIndex:web] valueForKey:@"WeblinkId"] intValue];


        [dictWebLinks setObject:txtName forKey:@"WeblinkName"];
        [dictWebLinks setObject:txtLink forKey:@"WeblinkUrl"];

        [arrForWebLinks addObject:dictWebLinks];

    }
    [db updateIntoAdditionalBookmarkWithObject:web_book];
}
[dictUpdate setObject:arrForWebLinks forKey:@"Weblink"];

我面临的问题是假设数组中有两项

Printing description of web_arr:
<__NSArrayM 0x170e4db60>(
{
WeblinkId = 9;
WeblinkName = Hdhd;
WeblinkUrl = "ie.comh";
},
{
WeblinkId = 10;
WeblinkName = Hd;
WeblinkUrl = "nd.com";
}
)

我得到的如下:

Printing description of arrForWebLinks:
<__NSArrayM 0x170e4db30>(
{
WeblinkName = Hd;
WeblinkUrl = "nd.com";
},
{
WeblinkName = Hd;
WeblinkUrl = "nd.com";
}
)

字典正在替换仅包含最新值的同一键的值,我如何才能以与 web_arr 中相同的格式保存这些值。 任何帮助都是可观的。

您一遍又一遍地向数组添加相同的字典:

[dictWebLinks setObject:txtName forKey:@"WeblinkName"];
[dictWebLinks setObject:txtLink forKey:@"WeblinkUrl"];

[arrForWebLinks addObject:dictWebLinks];

每次都需要新建一个:

[arrForWebLinks addObject:@{
    @"WeblinkName" : txtName,
    @"WeblinkUrl"  : txtLink
}];

(并删除 dictWebLinks)。