加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Swift中KVO(监听)的使用方法及谨慎事项

发布时间:2021-12-10 16:45:27 所属栏目:PHP教程 来源:互联网
导读:相信研究swift语言的开发者都多多少少了解或者精通ObjectiveC语言,熟练掌握ObjectiveC语言的开发者,在学习swift语言的过程中,是比较快速,而又轻松的。本人就是一位熟练掌握OC语言,后开始研究的swift。在学习swift语言的过程中,笔者建议有OC基础的开发者
相信研究swift语言的开发者都多多少少了解或者精通Objective—C语言,熟练掌握Objective—C语言的开发者,在学习swift语言的过程中,是比较快速,而又轻松的。本人就是一位熟练掌握OC语言,后开始研究的swift。在学习swift语言的过程中,笔者建议有OC基础的开发者,在写swift的代码过程中,再写一下OC中的代码,二者相互比较,相信你能找到快速学会swift语言的方法。资深,有耐心和有天赋的开发者,相信能在一周左右,能够运用swift开发项目。其中消耗的时间,也只是个别地方的学习,了解并注意。
 
我这次写的是swift中的监听即KVO的用法,一开始我是先写成OC的代码,然后转化成swift的代码的。在转化过程中发现一些问题,费了一定时间去研究,去思考,去找资料。一下是swift中KVO中所需要注意的问题(仅个人测试所总结的,代码有不对之处望指正,期望共同交流)。
 
1,在写swift的KVO的过程中,其不能监听基本数据类型的属性,若想监听需将其改成NSNumber类型,或其它类型,否则监听的代理方法不走。
 
2,在写swift的KVO的过程中,被监听的属性必须用“dynamic”修饰,否则监听的代理方法不走。
 
3,在写swift的KVO的过程中,要保证监听者和被监听者同时存在(考虑到其生命周期)。
 
4,在写swift的KVO的过程中,要确保最后移除观察者,防止内存泄露。
 
//添加监听的方法    注意,此处监听的age属性,是一个number类型
 
_view1.addObserver(self, forKeyPath: "age", options: NSKeyValueObservingOptions.New, context: &myContext);
 
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer) {
 
}
 
//移除监听的方法
 
override func viewDidDisappear(animated: Bool) {
 
super.viewDidDisappear(animated);
 
//移除监听
 
self.removeObserver(self, forKeyPath: "age", context: &myContext);
 
}

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读