Для внутренней части, если:
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
Дает:
theImage.contentMode = (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill : . scaleToFill
Теперь, если мы сделаем верхний уровень, если:
theImage.contentMode = UIDevice.current.iPad ? insideIf : . scaleAspectFill
В полном коде:
theImage.contentMode = UIDevice.current.iPad ? (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill
: . scaleToFill
: . scaleAspectFill
Это на самом деле не подлежит восстановлению.
Но
if UIDevice.current.iPad {
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
} else {
theImage.contentMode = .scaleAspectFill
}
Может быть преобразован в:
if UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) {
theImage.contentMode = .scaleToFill
} else {
theImage.contentMode = .scaleAspectFill
}
Это короче, но может быть труднее читать.
С троичным, если:
theImage.contentMode = UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleToFill : . scaleAspectFill
На мой взгляд? Сохраните свою версию (или, может быть, версию, в которой я использую только одну версию if / else). Тем не менее, компилятор оптимизирует, и через два месяца его легче исправить / изменить, если вы поймете, почему и что он делает быстро.