2016-12-01 1 views
0

일치 찾을 배열 사전을 술어 수 있습니다 나는 다음과 같은 사전이 : 나는 "제품명"을 얻기 위해 술어 할어떻게 값

let object = [[String : AnyObject]]() 
/* 
{ 
"allProducts":[ 
    { 
    "productDetails":[ 
     { 
      "productName":"My product which I am unable to get by NSPredicate." 
     } 
    ] 
    } 
] 
} 
*/ 

합니다.

코드 시도 : 당신은 할 필요가 없습니다 (그리고 안)이 간단한 뭔가 NSPredicate를 사용

let predicate = NSPredicate(format: "productName CONTAINS[c] '\(text)'") 
arrayTableData = allProducts.filter() { predicate.evaluate(with: $0["productDetails"]) } 
+0

신속한 구문을 사용하여'object'의 내용을 쓸 수 있습니까? JSON을 읽을 수 없습니다 – Sweeper

+0

'object'는 주석 처리 된 JSON 객체를 갖습니다. – Lazy

+0

알아요,하지만 JSON을 읽을 때 좋지 않습니다 ... – Sweeper

답변

0

.

arrayTableData = allProducts.filter() { product in 
    return product["productDetails"]?.contains { details in 
     return details["productName"]?.contains(text) ?? false 
    } ?? false 
} 
+0

'productDetails'에는 사전의 배열이 있으며 사전에 키가 " 상품명". – Lazy

+0

기다리십시오, 각 productDetails는 단 하나 열쇠를 가진 사전의 배열이다 : 가치 쌍 각각? ... 왜? – Alexander

+0

응답이 더 정교하고, 필자는 추출해야 할 값을 작성했습니다. – Lazy