У меня есть две переменные AnyObject?, которые я хотел бы сравнить для ссылочного равенства:
var oldValue: AnyObject?
var newValue: AnyObject?
...
if oldValue != newValue {
changed = true
}
Это не работает, потому что я, по-видимому, не могу сравнивать сразу два варианта. Мне нужно поведение, как если бы я сравнивал id в Objective-C, то есть:
-
true, если оба параметраnil -
true, если оба имеют значение, а значения также равны -
falseиначе
Есть ли элегантный способ записать это в Swift (в идеале без написания пользовательского расширения)?
Это лучшее, что я придумал:
if !(oldValue != nil && newValue != nil && oldValue == newValue)
Не очень красиво.: (