Я строю функцию поиска.У меня есть массив объектов User, и у каждого пользователя есть словарь тегов.Я пытаюсь вернуть пользователей с поисковыми тегами.
Мой класс пользователя:
class User: NSObject {
var name: String?
var tags = Dictionary<String, String>()
}
Пример тегов:
tags: {
“entry1” : “test1”,
“entry2” : “test2”,
“entry3” : “test3”
}
У меня естьпробовал отклонения:
let predicate = NSPredicate(format: “tags contains[c] %@", “test1”);
let filteredArray = self.usersArray!.filter { predicate.evaluate(with: $0) }; print(“users = ,\(filteredArray)");
Выдает «этот класс не совместим с кодировкой значений ключа для ключевых тегов».Я не уверен, как искать внутри объекта User.
Обновление : я изменил словарь на массив и filter { $0.tags.contains(searchTerm) }
работает для точного поиска, как и предлагалось.
.filter( {$0.tags.reduce(false, {$1.contains(searchTerm)} )} )
не работает для частичного соответствия, однако, это то, что я ищу.
Вот что напечатано:
Search term: ale
Result: []
Tags array inside each object:
["Alex", "Will", ""]
["Bob", "Dan", ""]
["First", "Second", "Third"]
["Testing 1", "Testing 2", ""]