Мне нужно отфильтровать массив статей по ключевому слову (строке) в описании статьи.Фильтрация занимает 2-3 секунды для массива 1500+ элементов типа Article и 2000+ слов в описании каждой статьи.
Я использую приведенный ниже код;я также попробовал предикат, но у меня не получилось.
let searchResult = articlesList.filter {
let article = $0
let filterByName = article.title.lowercased().range(of: text.lowercased())
let filterByDescription = article.body.lowercased().range(of: (text.lowercased()))
if ((filterByName != nil) || filterByDescription != nil) {
if !articlesList.contains(article) {
articlesList.append(article)
}
}
else {
let index = articlesList.index(of: article)
if index != nil {
articlesList.remove(at: index!)
}
}
return false
}
Я хочу, чтобы время фильтрации не превышало 0,3 секунды.