ios属性访问
来源:互联网 发布:sql 错误2 编辑:程序博客网 时间:2024/05/22 03:36
在开发过程中经常要用到定义属性,@property和@synthesize是经常用到的关键字,那么到底该如何正确定义一个属性呢,我们需要了解其中用到的关键字。
atomic: 原子操作
(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在Objective-C 属性设置里面默认的就是atomic,意思就是setter/getter函数是一个原子操作,如果多线程同时调用setter时,不会出现某一个线程执行完setter所有语句之前,另一个线程就开始执行setter,相当于函数头尾加了锁. 这样的话并发访问性能会比较低.
nonatomic: 非原子操作
一般不需要多线程支持的时候就用它,这样在并发访问的时候效率会比较高. 在objective-c里面通常对象类型都应该声明为非原子性的. iOS中程序启动的时候系统只会自动生成一个单一的主线程.程序在执行的时候一般情况下是在同一个线程里面对一个属性进行操作. 如果在程序中我们确定某一个属性会在多线程中被使用,并且需要做数据同步,就必须设置成原子性的,但也可以设置成非原子性的,然后自己在程序中用加锁之类的来做数据同步.通常说nonatomic 是提高在非多线程应用中的读写效率
copy
拷贝,新开地址,内容拷贝, setter 方法进行 Copy 操作,与 retain 处理流程一样,先旧值 release ,再 Copy 出新的对象, retainCount 为 1 。这是为了减少对上下文的依赖而引入的机制。
strong
强引用,计数器加1,和retain一样(对应retain和copy)
weak
用来修饰弱引用的属性
strong和weak的区别
(weak和strong)不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。
一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。
assign
用于简单类型,计数器不加,直接赋值,一个指针,一块地址, setter 方法直接赋值,不进行任何 retain 操作,为了解决原类型与环循引用问题
readonly
只读,只生成get方法,没有set方法
readwrite
默认,可读写,set,get方法都会生成
- ios属性访问
- ios 10 访问相机相册属性添加
- ios 的 字段、方法、属性的访问权限控制
- ios 对象私有属性的访问和修改
- iOS中访问和修改一个类的私有属性
- iOS 属性
- iOS 属性
- ios 属性
- ios 属性
- iOS 属性的属性
- iOS学习笔记之接口创建,及为接口创建属性访问器
- iOS UIView类扩展,直接访问属性 —— HERO博客
- iOS开发中访问并修改一个类的私有属性
- iOS积累-类方法能否访问自己的属性, self调用问题
- 自定义属性访问
- master 的属性访问
- 访问和继承属性
- 什么是属性访问器
- MySQL:日期函数、时间函数总结
- Monkey总结(一)
- 互联网全站HTTPS的时代已经到来[2014-10-04 09:21]
- Centos7.2配置静态IP
- 程序里的双右斜杠
- ios属性访问
- c语言中的局部变量与全局变量
- iOS AVPlayer支持播放的格式
- Android自定义View(二)->进阶
- 针对android xml布局的看法
- 通过js将table表格数据下载为Excel表格
- 海量数据面试题整理
- c语言随机数函数 rand()的使用
- UIScrollView的理解