Objective c 在数组中对NSDictionary键和值进行排序
我有这本字典。我想在不同的数组中获取值和键,并按照字典中显示的顺序,即索引=0键=名称,索引=1键=密码,索引=2键=地址。但问题是,当我打印数组时,它的顺序是不同的,索引=0上的意思是key=Address是come而不是Name。那么,如何分类呢Objective c 在数组中对NSDictionary键和值进行排序,objective-c,Objective C,我有这本字典。我想在不同的数组中获取值和键,并按照字典中显示的顺序,即索引=0键=名称,索引=1键=密码,索引=2键=地址。但问题是,当我打印数组时,它的顺序是不同的,索引=0上的意思是key=Address是come而不是Name。那么,如何分类呢 NSDictionary *dictFields=@{ @"name":@[_tfName.text], @"password":@[_tfPassword.text],
NSDictionary *dictFields=@{
@"name":@[_tfName.text],
@"password":@[_tfPassword.text],
@"address":@[_tfAddress.text]
};
NSLog(@"%@",dictFields);
keysArr=[dictFields allKeys] ;
NSLog(@"%@",keysArr);
valuesArray=[dictFields allValues];
NSLog(@"%@",valuesArray);
NSLog(@"%@",dictFields);
问题是字典没有索引。只有数组有索引。因此,字典将保证您尊重键/值对,但您无法控制这些信息的存储方式。事实上,如果您将内容保存到文本文件中,您可能会看到顺序每次都在更改
如果您真的想在字典中使用类似数字索引的内容,请使用数字作为键(如果您计划在for/next循环中使用数字进行排序,则必须将其从字符串转换为数字)。字典可以包含数组,因此每个键都可以指向一个数组作为值。简易修复:使用数组保存键
NSArray *keyArr = @[@"name",@"password",@"address",@"sex"];
NSArray *valueArr = @[@"nameValue",@"passwordValue",@"addressValue",@"sexValue"];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjects:valueArr forKeys:keyArr];
//your keyArr index
NSInteger index = 0;
[dict setValue:@"newNameValue" forKey:[keyArr objectAtIndex:index]];
NSLog(@"%@",[dict objectForKey:@"name"]);
希望这有助于将代码添加为文本,而不是图像,并显示实际输入和所需输出。您是否阅读了“讨论”部分
allKeys
和allValues
的文档?字典没有分类。我看不出这个问题的意义。我看不出他或她不进行搜索有什么意义。两天前有人问了同样的问题。