Оптимизация под размер экрана


#41

Доброго дня!
Дошел до этапа сортировки записей в таблице дней рождений по алфавиту.
У нас есть список имен и фамилий и при помощи следующего кода он сортируется вначале по фамилии, а затем по имени:

let sortDescriptor1 = NSSortDescriptor (key: “lastName”, ascending: true)
let sortDescriptor2 = NSSortDescriptor (key: “firstName”, ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor1, sortDescriptor2]

С первого взгляда все ок, но если ввести фамилию с маленькой буквы, а пользователь же может случайно так сделать, то она программа считает эту фамилию другой и все идет к чертям.
Например:
Иванова Алена
Иванова Марина
Иванова Настя
иванова Виктория

Подскажите пожалуйста, как убрать зависимость от регистра?


#42

“Иванова Мария”.lovercased() при сравнении приводить оба сравниваемые слова в нижний регистр на время сравнения


#43

Там есть еще одна функция - capitalized, она как раз подходит под этот случай. Вариант примерно такой:

var list: [String]

list = [
    "Иванова Алена",
    "Иванова Настя",
    "Иванова Марина",
    "иванова Виктория"
]

var listNew: [String] = []

func capital (items: [String]) -> [String] {
    
    for i in items {
        
        listNew.append(i.capitalized)
    }
    return listNew
}

var listCapitalized = capital(items: list)

var listSorted = listCapitalized.sorted()

// [“Иванова Алена”, “Иванова Виктория”, “Иванова Марина”, “Иванова Настя”]