在 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
)。
我知道这个问题已被问过很多次,但没有得到解决方案,或者我可能不明白这就是发布问题的原因。
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
)。