У меня есть следующий код:
class Mode { ... }
class TimelapseMode: Mode { ... }
var mode: Mode! = TimelapseMode()
Когда я проверяю type(of: mode) == TimelapseMode.self
, он возвращает false, что, очевидно, неправильно.Я подтвердил, установив точку останова и режим печати, это действительно TimelapseMode
.
Однако type(of: mode) === TimelapseMode.self
и mode is TimelapseMode
оба возвращают истину.
Это то, что оператор == не являетсяПравильно ли реализован класс метатипа?
Должен ли я пройти через весь код, заменив такое использование == на ===?