将具有相同键的所有对象从NSDictionary添加到NSArray

时间:2011-05-07 16:34:53

标签: iphone nsarray nsdictionary

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只有一个条目似乎是字典中的最后一个对象。我一直在努力解决这个问题几个小时了。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

使用Key-Value Coding,整个代码可以替换为:

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

了解框架,将其用于您的优势。

答案 1 :(得分:1)

您在每次迭代中都会覆盖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);           
}