如何以下列格式向NSDictionary添加元素?

时间:2013-05-12 11:52:05

标签: ios objective-c nsarray nsdictionary

我有NSArray名字和年龄。现在我正在尝试创建一个新的NSDictionary,其中项目0包含名字和第一个年龄,项目1包含第二个名称,第二个年龄来自相应的NSArray?那可能吗?

在我的viewDidLoad

NSMutableArray *Names = [[NSMutableArray alloc] init];
NSMutableArray *ages = [[NSMutableArray alloc] init];

for(int i = 0; i < 4; i++) {
    [Names addObject:[candidates objectAtIndex:i]];
    [ages addObject:[studenAge objectAtIndex:i]];
}

但是如何通过订单从中创建NSDictionary

最终结果

我想将此NSDictionary写入.plist,所以它看起来像这样:
Details { item 0 { name:rahul age:25 } item 1 { name:ram age:26 } item 2 { name:aajy age:20 } item 4 { name:raj age:25 } }

2 个答案:

答案 0 :(得分:1)

字典没有订单。

您可能希望将字典添加到数组中:

NSMutableArray *persons=[[NSMutableArray alloc]init];    
for(int i=0;i<4;i++)
{
  [persons addObject:@ { @"name" : candidate[i], @"age" : studenAge[i] }];
}

您可以使用NSArray,NSMutableArray的sort-Methods对此数组进行排序。

答案 1 :(得分:1)

正如@Amin所提到的,字典不维护顺序,因为你似乎想要一个索引访问,这就是我建议的最终结构:一组字典:

NSMutableArray *details = [NSMutableArray array];
for (int i=0;  i<4;  i++) {
    [details addObject:@{@"name": canditate[i], @"age":studentAge[i]}];
}

这将为您提供以下结构:

[{name:rahul, age:25}, {name:ram age:26},...]