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

发布于 2024-11-05 19:51:43 字数 456 浏览 2 评论 0原文

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

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);           
    }

above you can see the code i'm using, but listOfTerms only ever has one entry which seems to be the last object in the dictionary. i've been trying to sort this out for some hours now. any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流云如水 2024-11-12 19:51:43

使用键值编码,整个代码可以替换为:

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

了解框架,利用它来发挥你的优势。

Using Key-Value Coding, that whole code can be replaced by:

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

Know the framework, use it for your advantage.

蓝戈者 2024-11-12 19:51:43

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

You are overwriting listOfTerms in every iteration, try this instead:

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);           
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文