ios - 使用特定键对NSArray进行排序

标签 ios objective-c nsarray

我已从服务器请求一个数组,现在我想过滤所有在新数组中具有"status_read": 1的数据。我该怎么做?这是我的数据响应:

{
  "status": "success",
  "message": "success",
  "data": [
    {
      "logo": "http://**.com/timepicker/images/default_o.jpg",
      "title": "Title 1",
      "icon": "https://**.com/admin/dashboard/dist/img/a.png",
      "type": 1,
      "link_detail": "",
      "id_call": 12,
      "status_read": 1
    },
    {
      "logo": "http://**.com/timepicker/images/default_go.jpg",
      "title": "Title 2",
      "icon": "https://**.com/admin/dashboard/dist/img/b.png",
      "type": 0,
      "link_detail": "http://google.com",
      "id_call": 0,
      "status_read": 0
    }
  ]
}

这是我的过滤器数组代码:
NSString *dictionaryKey = @"status_read";
NSInteger predicateValue = 1;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %i", dictionaryKey, predicateValue];
NSArray *filteredArr = [readNotif filteredArrayUsingPredicate:predicate];
generalArray = filteredArr;
[self.notifTableView reloadData];

最佳答案

NSString *jsonStr = @"{\"status\":\"success\",\"message\":\"success\",\"data\":[{\"logo\":\"http://**.com/timepicker/images/default_o.jpg\",\"title\":\"Title 1\",\"icon\":\"https://**.com/admin/dashboard/dist/img/a.png\",\"type\":1,\"link_detail\":\"\",\"id_call\":12,\"status_read\":1},{\"logo\":\"http://**.com/timepicker/images/default_go.jpg\",\"title\":\"Title 2\",\"icon\":\"https://**.com/admin/dashboard/dist/img/b.png\",\"type\":0,\"link_detail\":\"http://google.com\",\"id_call\":0,\"status_read\":0}]}";

NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

//orignal array
NSArray *array = jsonDict[@"data"];
//create predicate to filter the array
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"status_read == 1"];

NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
NSLog(@"Filtered Array: %@",filteredArray);

关于ios - 使用特定键对NSArray进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43110289/

相关文章:

ios - 当调用未连接但调用套件ui在后台运行时如何关闭调用套件

ios - 为什么我不能在 xcode 6.1 中使用 show segue?

ios - 在 Swift Parse SDK 中使用 Pointer<_User> 进行查询

ios - 合并两个 NSArray 删除重复项

ios - 如何比较 Objective-c 中的各种 NSArray?

ios - 将触摸应用到自定义控制

ios - UIToolbar 的存在影响 View Controller View 的布局

objective-c - 如何检查结构是否已初始化?

iphone - 设备中的货币格式发生变化,为什么?

json - 获取此输出 json 的所有值