将NSDictionary转换为NSArray

时间:2016-03-08 04:57:49

标签: ios objective-c iphone

这两种语法之间的区别是什么,将NSDictionary转换为NSArray?

// replyInfo是NSDictionary

     NSArray *values=[[NSArray alloc]init];
     values = [replyInfo valueForKey:@"response"];//when this?
     values = [replyInfo allValues];//when this?

4 个答案:

答案 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];

请你试试吧。