Ios 在数组的字典数组中搜索值

Ios 在数组的字典数组中搜索值,ios,objective-c,json,nsarray,nsdictionary,Ios,Objective C,Json,Nsarray,Nsdictionary,以下是我的答复格式: [ { "id": 9001, "name": "A to B", "description": "A to B via mooncity", "sequence":[ 1001, 1002, 1003 ] }, { "id": 9002, "name": "B to D", "description": "B to D via suncity", "s

以下是我的答复格式:

[
  {
    "id": 9001,
    "name": "A to B",
    "description": "A to B via mooncity",
    "sequence":[
      1001,
      1002,
      1003
      ]
  },
 {
    "id": 9002,
    "name": "B to D",
    "description": "B to D via suncity",
    "sequence":[
      1010,
      1002,
      1009
      ]
  }
]
现在我想获取所有在其
序列数组中包含
1002
的字典,并将其放入另一个数组中

我累了

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"%K contains[c] %@", @"sequence", @"1002"];
但是上面的谓词对于字典数组很有效。然而,在这种情况下,它不起作用


任何帮助都将不胜感激。

在swift中,它将对我有效

let array = ["101","110","133"]
    let dict = ["sequence":array,"id": "10"] as [String : AnyObject]

    let array1 = ["100","110","133"]
    let dict1 = ["sequence":array1,"id": "10"] as [String : AnyObject]

    let fArray : NSArray = [dict,dict1] as NSArray


    let pred = NSPredicate(format:  "ANY self.sequence contains[c] %@", "100")

    let test = fArray.filteredArrayUsingPredicate(pred)

    print(test)
发出

[{
id = 10;
sequence =     (
    100,
    110,
    133
);

}]

在swift中,它对我有用

let array = ["101","110","133"]
    let dict = ["sequence":array,"id": "10"] as [String : AnyObject]

    let array1 = ["100","110","133"]
    let dict1 = ["sequence":array1,"id": "10"] as [String : AnyObject]

    let fArray : NSArray = [dict,dict1] as NSArray


    let pred = NSPredicate(format:  "ANY self.sequence contains[c] %@", "100")

    let test = fArray.filteredArrayUsingPredicate(pred)

    print(test)
发出

[{
id = 10;
sequence =     (
    100,
    110,
    133
);

}]
@“%@、@[@(1010)]中的任何序列”
。我把
@(number)
,因为它是JSON,所以应该序列化成
NSNumber
(除非你自己格式化并将值转换成
NSString
。我的谓词的格式是
ANY stops_sequence IN{“1002”}
。但它不工作。它返回空数组
@“ANY sequence IN%@”,@[@(1010)]]
。我把
@(number)
,因为它是JSON,所以应该序列化为
NSNumber
(除非您格式化自己并将值转换为
NSString
。我的谓词的格式是{“1002”中的
ANY stops\u序列)
。但它不起作用。它返回的空数组感谢您@jignesh的响应。不幸的是,它对我不起作用。由于未捕获异常“NSInvalidArgumentException”,应用程序正在崩溃,原因是:“无法在集合1001(非集合)中使用in/contains运算符”
我已经在swift中尝试了上述代码,如果使用“序列”,它将对我有效数组包含字符串值如果它包含int,那么它将使应用程序崩溃并等待您的响应@jignesh。不幸的是,它对我不起作用。由于未捕获的异常“NSInvalidArgumentException”,应用程序正在崩溃,错误是
终止应用程序,原因是:“无法在集合1001(非集合)中使用in/contains运算符”
我在swift中尝试了上述代码,如果“sequence”数组包含字符串值,它将对我起作用。如果它包含int,那么它将使应用程序崩溃