我知道这个问题已被多次询问但没有得到解决方案,或者我可能不明白这就是为什么发布问题。
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中相同的格式保存值。 任何帮助都很明显。
答案 0 :(得分:2)
您一遍又一遍地向数组中添加相同的字典:
[dictWebLinks setObject:txtName forKey:@"WeblinkName"];
[dictWebLinks setObject:txtLink forKey:@"WeblinkUrl"];
[arrForWebLinks addObject:dictWebLinks];
每次都需要创建一个新的:
[arrForWebLinks addObject:@{
@"WeblinkName" : txtName,
@"WeblinkUrl" : txtLink
}];
(并删除dictWebLinks
)。