Язык Использована Swift 2,3Как узнать, было ли изменено значение элемента внутри массива?
Например, у меня есть модель под названием Doctor
class Doctor {
var name = ""
var number = 123
init(name:String, number:String) {
self.name = name
self.number = number
}
}
И в другом классе я сделал это в массив
class SomeClass {
var doctors:[Doctor] = [
Doctor(name: "Matt Smith", number: 11),
Doctor(name: "David Tennant", number: 10),
Doctor(name: "Peter Capaldi", number: 12)
]
}
А потом по какой-то причине Я решил изменить значение index
# 2
class SomeClass {
...
// let's just say that this code was executed inside the code somewhere....
func change() {
doctors[2].name = "Good Dalek"
// or
doctors[2] = Doctor(name: "Christopher Eccleston", number: 9)
}
...
}
Как я узнаю, что значение массива doctors
отличается от предыдущего?
Я знаю filter
и sort
функции. Я также знаю, как использовать didSet
таким образом, что я мог бы сделать это
var doctors:[Doctor] = [] {
didSet {
// do something if `doctors` was changed
}
}
Простейшая вещь, которую вы можете сделать, это не допускать такой ситуации. Сделайте имя постоянным ('let') или сделайте' Doctor' в 'struct'. Концепция неизменяемости очень эффективна и упрощает дизайн. – Sulthan
Но мне нужно наблюдать изменения внутри массива. –