У меня есть переменная, как показано ниже
let faces: [(face: Smiley, label: UILabel)] = [
(Smiley(icon: .worse), UILabel()),
(Smiley(icon: .bad), UILabel()),
(Smiley(icon: .ok), UILabel()),
(Smiley(icon: .good), UILabel()),
(Smiley(icon: .amazing), UILabel())
]
с
class Smiley: UIButton {
enum Icon: Int {
case worse = -2, bad = -1, ok = 0, good = 1, amazing = 2
}
}
Я хочу передать значение лиц вызову API, только если он выбран, поэтому у меня есть код ниже
let selectedRating = faces
.map({ $0.face })
.filter({ $0.isSelected })
.first?.icon.rawValue ?? 1 // Using default value of 1
и selectedRating был передан вызову API. Но теперь условие изменилось, вы можете вызывать API даже без выбора лица, поэтому значение по умолчанию 1 не требуется. Как я могу пройти тогда?
если я попробую с кодом ниже: -
let selectedRating = faces
.map({ $0.face })
.filter({ $0.isSelected })
.first?.icon.rawValue
Я получаю сообщение об ошибке "Значение необязательного типа" Int? не развернуто; вы хотели использовать '!' или же '?'?" при передаче selectedRating в вызове API. Как я могу это решить?
В вызове API
пусть sessionRating: Int
был объявлен, как указано выше, и теперь я изменился на
let sessionRating: Int?
чтобы обеспечить прохождение
let selectedRating = faces
.map({ $0.face })
.filter({ $0.isSelected })
.first?.icon.rawValue ?? nil
в вызове API. Это правильный путь?