全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

IOS property属性详细介绍使用注意事项

IOS property属性

原子性

  • atomic
  • nonatomic

访问权限

  • readWrite
  • readOnly

内存管理

  • strong
  • retain
  • copy
  • assign
  • weak
  • unsafe_unretained

方法命名

  • getter = <name>
  • setter = <name>

结论

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 = <name>

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

     (2)setter = <name>

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

5、结论

     属性不是随便填写的,需要严格根据该属性在程序中的作用,再选择。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# IOS  # property属性  # property属性详解  # property属性介绍  # 详解iOS中UIButton的三大UIEdgeInsets属性用法  # IOS 贝塞尔曲线(UIBezierPath)属性、方法整理  # iOS App开发中导航栏的创建及基本属性设置教程  # iOS开发笔记--详解UILabel的相关属性设置  # iOS开发中一些手写控件及其相关属性的使用  # iOS UIView常见属性方法小结  # 关于iOS中属性变量setter与getter方法的理解  # iOS 对象属性详细介绍  # 关于iOS获取属性你真的了解吗?  # 访问权限  # 内存管理  # 也不  # 是在  # 就能  # 希望能  # 较多  # 可以使用  # 谢谢大家  # 但不  # 主要用于  # 再把  # 既不  # 方法来  # 开发人员  # 中把  # 头文件  # 变浅  # readWrite  # readOnly 


相关文章: 如何在腾讯云免费申请建站?  建站之星后台密码遗忘?如何快速找回?  常州自助建站工具推荐:低成本搭建与模板选择技巧  建站主机选购指南:核心配置与性价比推荐解析  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  建站之星代理商如何保障技术支持与售后服务?  c# await 一个已经完成的Task会发生什么  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  网站制作企业,网站的banner和导航栏是指什么?  如何在云主机上快速搭建网站?  如何在景安服务器上快速搭建个人网站?  如何通过IIS搭建网站并配置访问权限?  建站之星ASP如何实现CMS高效搭建与安全管理?  建站主机是否属于云主机类型?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  北京网站制作网页,网站升级改版需要多久?  如何用虚拟主机快速搭建网站?详细步骤解析  如何通过VPS建站无需域名直接访问?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  香港服务器部署网站为何提示未备案?  北京制作网站的公司,北京铁路集团官方网站?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  如何在IIS7中新建站点?详细步骤解析  C++用Dijkstra(迪杰斯特拉)算法求最短路径  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何快速生成高效建站系统源代码?  如何基于云服务器快速搭建个人网站?  宁波免费建站如何选择可靠模板与平台?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  如何通过PHP快速构建高效问答网站功能?  如何用PHP快速搭建高效网站?分步指南  学校为何禁止电信移动建设网站?  如何规划企业建站流程的关键步骤?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何高效利用200m空间完成建站?  Python多线程使用规范_线程安全解析【教程】  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  威客平台建站流程解析:高效搭建教程与设计优化方案  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何获取免费开源的自助建站系统源码?  如何在IIS7上新建站点并设置安全权限?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  济南专业网站制作公司,济南信息工程学校怎么样?  宝塔Windows建站如何避免显示默认IIS页面?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何通过NAT技术实现内网高效建站?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。