【问题标题】:Extract NSArray of dictionary in iOS在iOS中提取字典的NSArray
【发布时间】:2015-10-14 07:39:01
【问题描述】:

我有一个如下的响应数据。我有一个由字典填充的数组,我需要对多维数组的每个索引中的最后两个值进行排序。

这是我的数组:

数组列表状态

(

    {

    "Applicant_FirstName" = "";
    "Applicant_LastName" = "";
    "Application_ID" = test;
    "Application_Status" = "";
},
    {
    "Applicant_FirstName" = John;
    "Applicant_LastName" = Doe;
    "Application_ID" = 0002;
    "Application_Status" = Recertify;
}
)

这是我的代码:

- (NSArray *)subItems

{

NSMutableArray *items = [[NSMutableArray alloc] init];

for (int ar = 0; ar < arrayListstatus.count; ar++)

{
    NSArray *thirdarray=[arrayListstatus objectAtIndex:ar] ;


    NSLog(@"thirdarray %@",third array);


    [items addObject:thirdarray];

}

NSLog(@"itemss %@",items);

return items;


}

【问题讨论】:

  • 排序下是什么意思?你需要把它放到第三个数组中,然后按哪个属性排序?身份还是身份?
  • 就这个主题而言,过去几年没有什么新鲜事了。
  • 我需要把两者都整理出来。它应该看起来像 { "Application_ID" = test; "应用程序状态" = "";},{ "应用程序 ID" = 0002; "Application_Status" = 重新认证; }
  • “排序”是指“提取特定键”吗?您能否修改您的问题以包含您想要的确切输出?
  • 对不起,我必须从每个索引中提取最后两个值。请你帮帮我吗?

标签: ios objective-c arrays dictionary


【解决方案1】:

我认为这应该可以解决问题:

- (NSArray *)subItems

{

NSMutableArray *items = [[NSMutableArray alloc] init];

for (int ar = 0; ar < arrayListstatus.count; ar++)

{

   NSArray *thirdarray= [arrayListstatus objectAtIndex:ar] ;
NSMutableDictionary *tmpDict = [NSMutableDictionary alloc] init];
[tmpDict setObject:[thirdarray objectAtIndex:2] forKey:@"Application_ID"];
 [tmpDict setObject:[thirdarray objectAtIndex:3] forKey:@"Application_Status"];

[items addObject:tmpDict];

    [items addObject:tmpDict];

}

NSSortDescriptor *sortDescriptor;
sortDescriptor =  [NSSortDescriptor sortDescriptorWithKey:"Application_Status" ascending:YES], nil]];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [items sortedArrayUsingDescriptors:sortDescriptors];




NSLog(@"itemss %@",items);

return items;


}

【讨论】:

  • 我们如何在数组中使用集合对象。它在 [tmpDict setObject:[thirdarray setObject:2] forKey:@"Application_ID"] 中显示错误; [tmpDict setObject:[thirdarray setObject:3] forKey:@"Application_Status"];.
  • 实际上,从arrayListstatus返回的对象将返回一个字典而不是一个数组,对吧?我已经按照这个编辑了。
  • 不,它会返回数组而不是字典
  • 好的,我改回来了,应该是objectAtIndex,而不是setObject。
猜你喜欢
  • 1970-01-01
  • 2012-08-31
  • 2010-11-06
  • 2015-07-15
  • 2015-10-25
  • 2022-08-02
  • 2013-12-02
  • 2017-02-28
  • 1970-01-01
相关资源
最近更新 更多