这两种语法之间的区别是什么,将NSDictionary转换为NSArray?
// replyInfo是NSDictionary
NSArray *values=[[NSArray alloc]init];
values = [replyInfo valueForKey:@"response"];//when this?
values = [replyInfo allValues];//when this?
答案 0 :(得分:8)
values = [replyInfo valueForKey:@"response"];
这为您提供了字典中特定键的值。
values = [replyInfo allValues];
中的位置返回包含字典值的新数组
values = [replyInfo allKeys];
将返回字典中所有键的数组。
何时使用:
如果您想从字典中访问特定项目,请转到
values = [replyInfo valueForKey:@"response"];
如果您想对所有值执行某些操作,例如遍历所有值或某些值,请转到
values = [replyInfo allValues];
答案 1 :(得分:1)
假设您收到如下所示的回复,
{
"response" : [1, 2, 3, 4, 5]
}
然后,
values = [replyInfo allValues];
会像这样输入数据。
values[0] = NSArray ([1, 2, 3, 4, 5])
values[1] = nil
现在,要访问这些数据;我们可以这样做,
array = [values objectAtIndex:0];
可以将其作为,
array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
答案 2 :(得分:0)
allValues:它的返回类型是一个数组。它给你字典的值(不是键)。如果dict是空的,则返回nil。
valueForKey:它的返回类型是id。这意味着这个方法可以给任何对象(如NSArray,NSDictionary,NSString等)作为回报。
答案 3 :(得分:0)
NSArray *values = [[replyInfo valueForKey:@"response"] allValues];
请你试试吧。