3.read/write with backing store,信息隐藏,监控属性变化,附加额外处理
类似
12
@property(nonatomic,retain)NSStringaddress;
实例变量自动为_address
1234567891011121314151617181920212223
privatevar_address:String=""{willSet{println("old Value = \(_address) will clear,new value = \(newValue) will set")self._address=newValue;}didSet{//可以追回一些额外的处理逻辑println("Property did set")}}varaddress:String{get{returnself._address;}set(newAddress){ifnewAddress!=_address{self._address=newAddress}}}
classQBaseClass{//read onlyvarname:String{get{returnself.name}}//read/write Setters/Getters用来计算和获取属性,//并没有给成员变量实例分配存储,所以,会触发EXC_BAD_ACCESS.privatevarrealAge:Int=0;varage:Int{get{returnrealAge}set{realAge=newValue}}//read/write with backing store,//类似 @property(nonatomic, assign)NSInter number;变量自动为_numberprivatevar_number:UInt=0;varnumber:UInt{get{returnself._number;}set(newNumber){ifnewNumber!=number{self._number=newNumber}}}//read/write with backing store,信息隐藏,监控属性变化,附加额外处理//类似 @property(nonatomic, retain)NSString address;变量自动为_addressprivatevar_address:String=""{willSet{println("old Value = \(_address) will clear,new value = \(newValue) will set")self._address=newValue;}didSet{//可以追回一些额外的处理逻辑println("Property did set")}}varaddress:String{get{returnself._address;}set(newAddress){ifnewAddress!=_address{self._address=newAddress}}}init(){self.age=0;}}