В каком порядке Интерфейсный Разработчик оценивает IBInspectables? - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть пользовательский элемент интерфейса, разработанный с помощью IBInspectables, так что я могу использовать и изменять его в Интерфейсном Разработчике.Есть 2 проверяемых объекта, которые эффективно изменяют одно и то же свойство элемента, но немного другим способом.

enter image description here

На снимке экрана есть title, который устанавливает заголовок элемента, и locTitleKey, который получает NSLocalizedString по ключу иустанавливает его в качестве заголовка.

Как видно из передачи различных значений этим проверяемым объектам:

  1. Если указано locTitleKey и title оставлено пустым, используется локализованная строка
  2. Если указаны оба, title используется, а локализованный игнорируется

Вопрос - это поведение предсказуемо?

Другими словамиМогу ли я смело предположить, что порядок оценки моего IBInspectables всегда будет одинаковым?(title, а затем locTitleKey)

Чтобы получить больше контекста, здесь используются фрагменты кода.

title определяется в области самого класса:

@IBDesignable
class StandardInputField: UIView, NibLoadable {
    //...
    @IBInspectable
    public var title: String? {
        didSet {
            titleLabel.text = title
        }
    }
    //...
}

И locTitleKey определяется как расширение:

extension StandardInputField {
    @IBInspectable var locTitleKey: String? {
        get {
            return nil
        }
        set(key) {
            title = key?.localized
        }
    }
}
...