Mam dwa AnyObject?
zmienne, które chciałbym porównać dla równości odniesienia:Najbardziej eleganckim sposobem porównać dwa ewentualne, w Swift
var oldValue: AnyObject?
var newValue: AnyObject?
...
if oldValue != newValue {
changed = true
}
to nie działa choć, jak ja widocznie nie można porównać dwa składniki ewentualne bezpośrednio. Chcę zachowanie jakbym porównując id
S w Objective-C, to jest:
true
jeśli oba sąnil
true
jeśli oba mają wartość i wartości są także równefalse
inaczej
Czy istnieje elegancki sposób na napisanie tego w Swift (najlepiej bez pisania niestandardowego rozszerzenia)?
Jest to najlepszy jaki wymyślić:
if !(oldValue != nil && newValue != nil && oldValue == newValue)
niezbyt ładna. :(
Możesz użyć '! ==' zobacz http://stackoverflow.com/questions/24002819/difference-between-and dla odniesienia. – sbarow
Czy to naprawdę jest ?! Ciągle zapominam o tym operatorze! – devios1
@sbarow Myślę, że masz to właściwie. Opublikuj odpowiedź, jeśli chcesz rep. – devios1