ho due AnyObject?
variabili che vorrei confrontare per l'uguaglianza di riferimento:modo più elegante per confrontare due optional a Swift
var oldValue: AnyObject?
var newValue: AnyObject?
...
if oldValue != newValue {
changed = true
}
Questo non funziona se, come io a quanto pare non posso paragonare direttamente due optionals. Voglio che il comportamento come se stessi paragonando id
s in Objective-C, vale a dire:
true
se entrambi sononil
true
se entrambi hanno un valore ed i valori sono ugualifalse
altrimenti
C'è un modo elegante per scrivere questo in Swift (idealmente senza dover scrivere un'estensione personalizzata)?
Questo è il migliore che è venuta in mente:
if !(oldValue != nil && newValue != nil && oldValue == newValue)
Non molto carina. :(
È possibile utilizzare '! ==' vedere http://stackoverflow.com/questions/24002819/difference-tra i- e per riferimento. – sbarow
È davvero così ?! Continuo a dimenticare quell'operatore! – devios1
@sbarow Penso che tu l'abbia preso davvero. Pubblica la risposta se vuoi il rappresentante. – devios1