NSDictionaryを含むNSMutableArrayがあります。 そして、重複した辞書を配列で削除したいと思います。 配列からわかるように、_idが同じ辞書がいくつかあります。 すべての重複した辞書を削除します。Swift 3でNSDictionaryを含むNSMutableArrayの重複フィールドを削除する方法
{
"1": {
"_id": 1
"-name": "test1"
}
"2": {
"_id": 2
"-name": "test2"
}
"3": {
"_id": 1
"-name": "test1"
}
"4": {
"_id": 3
"-name": "test3"
}
"5": {
"_id": 2
"-name": "test2"
}
}
と同様にここに私のコードです。
let filteredArray:NSMutableArray = []
for matchData in self.arrayUserMatches {
let matchDictionary = matchData as? NSDictionary
if let matchID = matchDictionary?.value(forKey: "_id") {
let hasDuplicate = filteredArray.filtered(using: NSPredicate(format: "_id == %@", (matchID as! String))).count > 0
if !hasDuplicate {
filteredArray.add(matchDictionary)
}
}
}
しかし、それは、reason: '[<_SwiftValue 0x6180002419b0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key _id.
のようなエラーが発生し、この分野での経験を持っている誰もがありますか?
いつものように可変財団コレクション型を使用していませんあなたが本当にKVCが何であり、あなたが本当にそれを必要としているのか分からない限り、Swiftと 'valueForKey'を使用しないでください。 – vadian
しかし、これは大きなプロジェクトです、今変更することはできません、あなたは私のために解決策を提供してくれますか? –
NSMutableArrayはありますが、実際は配列ではなく、ネストされたディクショナリを持つ辞書 – alexburtnik