У меня есть две переменные 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)
Не очень красиво.: (