Modifier la valeur définie dans le bloc willSet de la variable

Je suis en train de trier le tableau qui est mis en avant mais l'argument de willSet est immuable et sort mutation de la valeur. Comment puis-je surmonter cette limite?

var files:[File]! = [File]() {
    willSet(newFiles) {
        newFiles.sort { (a:File, b:File) -> Bool in
            return a.created_at > b.created_at
        }
    }
}

De mettre cette question de mon propre cadre de ce projet, j'ai fait ce gist:

class Person {
    var name:String!
    var age:Int!

    init(name:String, age:Int) {
        self.name = name
        self.age = age
    }
}

let scott = Person(name: "Scott", age: 28)
let will = Person(name: "Will", age: 27)
let john = Person(name: "John", age: 32)
let noah = Person(name: "Noah", age: 15)

var sample = [scott,will,john,noah]



var people:[Person] = [Person]() {
    willSet(newPeople) {
        newPeople.sort({ (a:Person, b:Person) -> Bool in
            return a.age > b.age
        })

    }
}

people = sample

people[0]

Je reçois le message d'erreur indiquant que newPeople n'est pas mutable et sort est d'essayer de muter.

source d'informationauteur Mohsen