Iphone 将具有相同密钥的所有对象从NSDictionary添加到NSArray

Iphone 将具有相同密钥的所有对象从NSDictionary添加到NSArray,iphone,nsarray,nsdictionary,Iphone,Nsarray,Nsdictionary,上面您可以看到我正在使用的代码,但是listOfTerms只有一个条目,它似乎是字典中的最后一个对象。几个小时以来我一直在努力解决这个问题。任何帮助都将不胜感激。您在每次迭代中都会覆盖术语列表,请尝试以下方法: NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"]; for(NSDictionary *d in myArray){ newInfo=[d val

上面您可以看到我正在使用的代码,但是listOfTerms只有一个条目,它似乎是字典中的最后一个对象。几个小时以来我一直在努力解决这个问题。任何帮助都将不胜感激。

您在每次迭代中都会覆盖术语列表,请尝试以下方法:

NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"];

    for(NSDictionary *d in myArray){

        newInfo=[d valueForKey:@"screen_name"];

        NSLog(@"%@", newInfo);      

        listOfTerms=[[NSMutableArray alloc]initWithObjects:newInfo, nil];


        NSLog(@"here   %@", listOfTerms);           
    }
使用,整个代码可以替换为:

listOfTerms = [[NSMutableArray alloc] init];

NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"];

for(NSDictionary *d in myArray){

    newInfo=[d valueForKey:@"screen_name"];

    NSLog(@"%@", newInfo);      

    [listOfTerms addObject:newInfo];

    NSLog(@"here   %@", listOfTerms);           
}

了解框架,利用它为您提供优势。

非常感谢@Nick您让我的头停止转动。我一直到凌晨3点才想弄明白那件事。我知道事情会很简单。再次感谢
NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"];
NSArray *listOfTerms = [myArray valueForKey:@"screen_name"];