Что ж, если вы предполагаете, что это свойство всегда и если только всегда, тип ссылки, то вы можете попробовать использовать AnyObject
вместо Any
и использовать оператор ===
, чтобы проверить, указывают ли указатели натот же объект.
Примерно так:
class Test {
var object: AnyObject? {
didSet {
if oldValue === object {
debugPrint("Old object")
} else {
debugPrint("New object")
}
}
}
}
class SomeClass {}
let test = Test()
let s = SomeClass()
test.object = s
test.object = s
test.object = SomeClass()
Результат будет:
"New object"
- потому что предыдущее значение было nil
"Old object"
- потому что мы присвоили один и тот же s
"New object"
- потому что мы присвоили совершенно новый объект