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,那么它将使应用程序崩溃