如何将字典数据添加到数组中?

Posted

技术标签:

【中文标题】如何将字典数据添加到数组中?【英文标题】:how to add dictionary data in to an array? 【发布时间】:2013-01-24 06:50:07 【问题描述】:

我已经制作了一个数组和一个字典。现在我想将字典的值放入数组中。我对目标 C 很陌生,所以请帮忙。 “视图控制器.m”

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController

- (void)viewDidLoad

[super viewDidLoad];

marray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4", nil];
marray = [[NSMutableArray alloc]initWithObjects:@"6",@"7",@"8",@"9",@"10", nil];
[self displayarray];
[marray release];
mDictionary = [[NSMutableDictionary alloc]init];
[mDictionary setValue:@"sdfsdhfg" forKey:@"firstname"];
[mDictionary setValue:@"kvxv" forKey:@"lastname"];
[self displaydict];
[mDictionary release];

-(void)displaydict
CFShow(mDictionary);

-(void)displayarray
for (int i = 0; i<[marray count]; i++) 
    NSLog(@"the array data present at %d index is %@",i,[marray objectAtIndex:i]);



- (void)didReceiveMemoryWarning

[super didReceiveMemoryWarning];



@end

【问题讨论】:

【参考方案1】:

您的问题包含很多其他问题,我将尝试解决其中一些与将字典转换为数组有关的问题。

    存储所有密钥

    NSArray *dictKeys=[dict allKeys];
    

    存储所有值

    NSArray *dictValues=[dict allValues];
    

    如果你想同时存储键和值:

    NSArray *keysAndValues=[dictKeys arrayByAddingObjectsFromArray:dictValues];
    

编辑:

由于您需要 NSMutableArray,您可以使用:

NSMutableArray *dictAllKeys=[NSMutableArray arrayWithArray:[dict allKeys]];
NSMutableArray *dictAllValues=[NSMutableArray arrayWithArray:[dict allValues]];
NSMutableArray *keysAndValues=[NSMutableArray arrayWithArray:[dictAllKeys arrayByAddingObjectsFromArray:dictAllValues]];

【讨论】:

但是如果我使用 NSMutableArray 而不是 NSArray 它不起作用..你能详细说明一下吗?谢谢。 没什么大问题... NSArray 包含的任何方法都由 NSMutableArray 继承...在少数情况下您需要稍作调整...我将在几秒钟内更新我的答案【参考方案2】:
for (NSDictionary *dictionary in arrayname)

    NSMutableArray *array = [dictionary objectForKey:@"writeKey"];

这可能对你有帮助

【讨论】:

【参考方案3】:

如果您想访问 Dictionary 的值,请使用特定的键值。为此,请使用以下格式。

NSArray *yourarray=[YourDictionary ObjectForKey:@"KEY"];

希望对你有帮助。

【讨论】:

O of objectForKey 应该很小,并且给定的键只有一个对象,它必须是一个数组来存储在 yourArray 中。 “ObjectForKey”将返回任何可能是数组或一个对象的对象,这不是问题。如果您想要其他解决方案,为什么不在 Dictionary 中查找“ObjectAtIndex”。

以上是关于如何将字典数据添加到数组中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组中键的值添加到字典中? [关闭]

如何使用 insertRowsAtIndexPaths 将数组内的字典添加到 UItableview?

无法以编程方式将字典数组中的行添加到 NSTable

如何重新创建“索引超出数组范围”将项目添加到字典?

如何从firebase数据库中检索数据作为字符串而不是字典并将其添加到数组中?

如何将弱引用对象存储在数组中,字典中的objc?