189 8069 5689

如何在IOS中使用property属性

本篇文章为大家展示了如何在IOS中使用property属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联公司-成都网站建设公司,专注网站制作、成都网站建设、网站营销推广,域名申请,虚拟空间,网站改版维护有关企业网站制作方案、改版、费用等问题,请联系创新互联公司

IOS property属性

原子性

  • atomic

  • nonatomic

访问权限

  • readWrite

  • readOnly

内存管理

  • strong

  • retain

  • copy

  • assign

  • weak

  • unsafe_unretained

方法命名

  • getter =

  • setter =

结论

1、原子性

     (1)atomic

               原子性,可以理解成就是生成getter、setter方法时,编译器会自动为程序添加同步锁,减少因为在不同的线程中同时对同一个内存地址进行读写操作,而产生的二意性、数据混乱的情况。

               但同步锁也不能一定保证能完全阻止同时读写的情况发生,而且同步锁会耗费较多资源,降低程序的效率,因此不建议使用,但atomic是默认的特性。

     (2)nonatomic

               非原子性,也就是不添加同步锁,读写效率会高,但需要开发人员注意同时读写的情况,可以使用gcd的栏栅和同步方法来保证。

2、访问权限

     (1)readWrite

               生成getter、setter方法,并生成实例变量指针,但对于静态库类是无法修改的,所以即使能进入头文件也无法修改。

     (2)readOnly

               只生成getter方法,可以用于数据保护,在interface中把属性声明了readOnly,在continue-class中再把属性声明为readWrite,就能实现私有属性的效果,从而有更好的封装特性,但其实通过KVC

               依然可以从外部修改属性,但不建议这样使用。

3、内存管理

     (1)strong:strong是推出ARC自动计数后后添加的属性,效果与retain基本一致,都是在setter方法中,对旧数值release,对新数值retain。
     (2)retain与strong基本一致
     (3)assign:简单赋值操作,通常针对普通类型,既不release,也不retain
     (4)copy:能更好实现上下文环境保护。对旧值release,对新值进行copy操作,immutable+copy = 不可变浅复制,mutable+copy = 不可变深复制。
     (5)weak:weak特性,并不会持有对象,当指向对象的指针全撤销后,对象释放,指针置nil,这常用于block的保留环
     (6)unsafe_unretained:不会持有对象,但引用对象,对象释放后,会产生野指针,主要用于兼容以前的方法。

4、方法命名

     (1)getter =

                属性生成的默认getter方法名:属性名

     (2)setter =

               属性生成的默认getter方法名:set+属性名

上述内容就是如何在IOS中使用property属性,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享标题:如何在IOS中使用property属性
标题链接:http://cdxtjz.cn/article/pecchh.html

其他资讯