9.7 Swift属性观察器

前端之家收集整理的这篇文章主要介绍了9.7 Swift属性观察器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_502_2@/**@H_502_2@

@H_502_2@属性观察器@H_502_2@

@H_502_2@观察属性的变化,是指属性修改时可以调用我们事先写好的代码去额外执行一些操作。@H_502_2@

@H_502_2@类似于@H_502_2@OC@H_502_2@中的@H_502_2@KVO@H_502_2@

@H_502_2@

@H_502_2@存在两种属性观察器@H_502_2@

1. willSet @H_502_2@在设置新值的时候调用@H_502_2@

2. didSet @H_502_2@在设置新值的之后调用@H_502_2@

@H_502_2@可以直接为除@H_502_2@ lazy@H_502_2@属性之外的存储属性添加属性观察器,你不可以直接给类里面的计算属性添加属性观察器,@H_502_2@

@H_502_2@当然也可以在继承类中为父类的计算属性提供属性观察器(后面再讲)。@H_502_2@

*/@H_502_2@

@H_502_2@

@H_502_2@

@H_502_2@struct@H_502_2@ MyRect {@H_502_2@

@H_502_2@var@H_502_2@ origion:(x: @H_502_2@Double@H_502_2@,y: @H_502_2@Double@H_502_2@) = (@H_502_2@0@H_502_2@,@H_502_2@0@H_502_2@) {@H_502_2@

@H_502_2@willSet@H_502_2@ {@H_502_2@

@H_502_2@// @H_502_2@属性修改之前@H_502_2@

@H_502_2@@H_404_131@print@H_502_2@(@H_502_2@"will set==@H_502_2@\@H_502_2@(@H_502_2@newValue.x@H_502_2@) @H_502_2@\@H_502_2@(@H_502_2@newValue.y@H_502_2@)"@H_502_2@)@H_502_2@

}@H_502_2@

@H_502_2@

@H_502_2@didSet@H_502_2@ {@H_502_2@

@H_502_2@// @H_502_2@属性修改之后@H_502_2@

@H_502_2@@H_404_131@print@H_502_2@(@H_502_2@"did set==@H_502_2@\@H_502_2@(@H_502_2@oldValue.x@H_502_2@) @H_502_2@\@H_502_2@(@H_502_2@oldValue.y@H_502_2@)"@H_502_2@)@H_502_2@

}@H_502_2@

}@H_502_2@

@H_502_2@var@H_502_2@ size: (w: @H_502_2@Double@H_502_2@,h: @H_502_2@Double@H_502_2@) = (@H_502_2@0@H_502_2@,@H_502_2@0@H_502_2@)@H_502_2@

@H_502_2@var@H_502_2@ center: (x: @H_502_2@Double@H_502_2@,@H_502_2@0@H_502_2@)@H_502_2@

}@H_502_2@

@H_502_2@

@H_502_2@var@H_502_2@ rect = @H_502_2@MyRect@H_502_2@()@H_502_2@

@H_502_2@

rect.@H_502_2@size@H_502_2@ = (@H_502_2@100@H_502_2@,@H_502_2@100@H_502_2@)@H_502_2@

@H_502_2@

@H_477_301@ @H_502_2@// @H_502_2@写@H_502_2@ @H_502_2@内容修改的时候被调用@H_502_2@

rect.@H_502_2@origion@H_502_2@ = (@H_502_2@9@H_502_2@,@H_502_2@9@H_502_2@) @H_502_2@// setter @H_502_2@写@H_502_2@

@H_502_2@

@H_477_301@ @H_502_2@// @H_502_2@这个时候不会调用了@H_502_2@

@H_502_2@let@H_502_2@ dd = rect.@H_502_2@origion@H_502_2@ @H_502_2@// getter @H_502_2@读@H_502_2@

@H_502_2@

@H_502_2@

rect.@H_502_2@center@H_502_2@ = (rect.@H_502_2@origion@H_502_2@.x + rect.@H_502_2@size@H_502_2@.w / @H_502_2@2@H_502_2@,rect.@H_502_2@origion@H_502_2@.y + rect.@H_502_2@size@H_502_2@.h / @H_502_2@2@H_502_2@)@H_502_2@

原文链接:https://www.f2er.com/swift/322416.html

猜你在找的Swift相关文章