У меня есть табличное представление с максимум 27 разделами (AZ + #)
Раздел A содержит все объекты, имя которых начинается с "A" и т. Д. Мои объекты в этом случае имеют тип Artist
и имеют свойство name
.
private var sectionIndices: [String] = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","#"]
for beginningLetter in self.sectionIndices {
print("Finding artists for \(beginningLetter)")
let artists: Results<Artist>
if beginningLetter == "#" {
artists = self.artists.filter("NOT (name[0] IN %@)", self.sectionIndices)
} else {
artists = self.artists.filter("name BEGINSWITH[cd] %@", beginningLetter).sorted(byKeyPath: "name", ascending: true)
}
}
Так что фильтрация отлично работает для всего, кроме раздела #.По сути, каждый артист, имя которого начинается с неалфавитной буквы, должен быть там.«21 Savage», «6ix9ine», «2 Pac» и т. Д.
Спички по какой-то причине не работают, я пробовал
name MATCHES %@
, но область на самом деле не поддерживает это.
Я ищу фильтр, который дает мне такое поведение - оператор IN на name[0]
также не работает (и неэффективен).
Любая помощь приветствуется, спасибо!