Ios 将旧NSDictionary值添加到2 for循环内的新NSDictionary
所以我有一个难题,我正试图解决;我正在尝试“合并”两个NSARRAY词典。一个数组是新的,也称为有效的好友列表,旧的数组是您在拾取/撰写时先前选择的任何收件人。我所要做的就是将一个对象从旧的NSDictionary复制到新的NSDictionary中,如果这个朋友仍然存在于新的NSArray NSDictionary中的话 基本上,如果点击recipients选择器中的表单元格,我会将其保存为NSDictionary的选定状态键。因此,下次我检查您是否仍然与以前的朋友是朋友时,我希望在刷新表视图并显示您的任何新朋友时保存此选定状态。当我每60秒获得一次新的有效好友列表时,我会将所选状态预先设置为Ios 将旧NSDictionary值添加到2 for循环内的新NSDictionary,ios,objective-c,nsarray,nsdictionary,Ios,Objective C,Nsarray,Nsdictionary,所以我有一个难题,我正试图解决;我正在尝试“合并”两个NSARRAY词典。一个数组是新的,也称为有效的好友列表,旧的数组是您在拾取/撰写时先前选择的任何收件人。我所要做的就是将一个对象从旧的NSDictionary复制到新的NSDictionary中,如果这个朋友仍然存在于新的NSArray NSDictionary中的话 基本上,如果点击recipients选择器中的表单元格,我会将其保存为NSDictionary的选定状态键。因此,下次我检查您是否仍然与以前的朋友是朋友时,我希望在刷新表视图
[NSNumber numberWithBool:NO]
,这就是为什么我希望在选择收件人时合并先前选择的状态
我已尝试嵌套for循环,但从未设置上一个选定对象。我认为对象永远不会被设置,因为内部for循环不会在外部for循环之前返回,但我不确定如何正确地执行此操作。我真的很感激任何帮助!非常感谢。以下是我的方法:
- (void)updateOurRecipientsWithArray:(NSArray *)newFriendsArray
{
NSMutableArray *newArray = [[NSMutableArray alloc]init];
for (NSDictionary *dict in newFriendsArray)
{
NSMutableDictionary *newDict = [[NSMutableDictionary alloc]initWithDictionary:dict];
for (NSDictionary *sub in appDelegate.composeFriendsArray)
{
// This below line checks to make sure they're still a valid friend
if ([[newFriendsArray valueForKey:@"username"]containsObject:[sub objectForKey:@"username"]])
{ // This below value never gets set correctly
[newDict setObject:[sub objectForKey:@"Selected"] forKey:@"Selected"];
}
}
[newArray addObject:newDict];
}
appDelegate.composeFriendsArray = [NSMutableArray arrayWithArray:[appDelegate sortedArray:newArray]];
[[NSNotificationCenter defaultCenter] postNotificationName:@"UpdatePriorRecipients" object:nil];
}
通过以下方式修改您的if条件:
if ([[newDict valueForKey:@"username"] isEqualToString:[sub objectForKey:@"username"]])