Тип «Любой» не имеет подписных элементов - при удалении повторяющихся записей - PullRequest
0 голосов
/ 04 октября 2018

Я хочу удалить дубликаты словарей из моего nsarray на основе одного из ключей, который содержит мои словари

Но я получаю эту ошибку:

Тип "Любой" имеетнет подписчиков

Я получаю сообщение об ошибке в нижней строке

guard let name = $0["profile_id"] as? String else {return nil }

вот мой код ...

var set = Set<String>()
let arraySet: [[String : Any]] = arry.compactMap {
    guard let name = $0["profile_id"] as? String else {return nil }
    return set.insert(name).inserted ? $0 : nil
}

Может ли кто-нибудь мне помочь?

Спасибо

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете попробовать

var set = Set<String>()
let arraySet: [[String : Any]] = arry.compactMap {
   guard let dic = $0 as? [String:Any], let name = dic["profile_id"] else {return nil }
   return set.insert(name).inserted ? dic : nil
}

или с самого начала разыграть arry как [[String:Any]]

...