Import Foundationclass people:nsobject{//Common attribute var firstname:string = "var lastname:string =" "Var nickn ame:string = ""//Calculate attribute var fullname:string {get {return nickname + "" + Firstnam E + "" + LastName}}//Normal property with Property monitor var Age:int = 0 {//We need to do something before the age attribute changes Willset {println ("will set a new value \ (NewValue) to")}//We need to update the nickname property after the Age property has changed Didset {println ("filed changed form \ (OldValue) to \ (age)") if age<10 {nickname = "Little"}else {nickname = "Big"}} } func toString (), String {return ' full Name: \ (fullName) ' + ', Age: \ (age) '}}var Me = People () Me.firstname = "Zhang" me.lastname = "San" me.age = 20println (me.tostring ())/* Program output would set an new value from Age filed Changed form 0 To 20Full name:big Zhang San, age:20*/
Willset and Didset in Swift