2016-09-26 22 views
0

辭書陣列搜索一個值這裏是我的迴應格式:在陣列

[ 
    { 
    "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 
     ] 
    } 
] 

現在我想其中有他們sequence array1002所有詞典,放入另一個數組。

我累

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"%K contains[c] %@", @"sequence", @"1002"]; 

但上面的謂詞非常適用於字典的數組。而在這種情況下它不起作用。

任何幫助將不勝感激。

+0

'@ 「ANY序列%@」,@ @(1010 )]]'。我把'@(number)',因爲它是JSON,所以它應該被序列化爲'NSNumber'(除非你格式化你的自己並把值變成'NSString'。 – Larme

+0

我的謂詞格式是'ANY stops_sequence IN { 1002「}'。它不能正常工作。它返回的空數組 –

回答

1
在迅速

它會爲我的作品

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 
); 

}]

+0

感謝您的回覆@jignesh。不幸的是,它不適用於我的應用程序崩潰的錯誤'終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因: '不能在集合中使用/包含運算符1001(不是集合)' –

+0

我已經在swift中嘗試了上面的代碼,如果「sequence」數組包含字符串值(如果它包含int),它將適用於我,然後它會使應用程序崩潰 –

1
NSPredicate *pred = [NSPredicate predicateWithFormat:@"CAST(sequence, 'NSString') contains[cd] %@", @"1002"]; 
NSArray *result = [your_array filteredArrayUsingPredicate:pred];