繁体   English   中英

将 NSDictionary 转换为 NSArray

[英]Converting NSDictionary to NSArray

这两种将 NSDictionary 转换为 NSArray 的语法有什么区别?

//replyInfo 是 NSDictionary

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

这为您提供了字典中特定键的值。

其中values = [replyInfo allValues]; 返回一个包含字典值的新数组

values = [replyInfo allKeys]; 将返回字典中所有键的数组。

何时使用:

  • 当您想从字典中访问特定项目时

    values = [replyInfo valueForKey:@"response"];
  • 当您想对所有值做某事时,例如遍历所有值或某事

    values = [replyInfo allValues];

假设您收到如下响应,

{
"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

allValues :它的返回类型是一个数组。 它为您提供字典的值(不是键)。 如果 dict 为空,则返回 nil。

valueForKey :它的返回类型是 id。 这意味着此方法可以返回任何对象(如 NSArray、NSDictionary、NSString 等)。

NSArray *values = [[replyInfo valueForKey:@"response"] allValues];

请你试试这个。

你可以这样做:

successCallback(@[resultMessage]);

其中 resultMessage 是 NSDictionary 和 successCallback 接受 NSArray

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM