属性关键字

读写权限关键字

readonly

readwrite  (默认)

原子性

atomic(默认) 

保证 赋值和获取是线程安全的  (直接对成员变量的获取  赋值)并不代表操作和访问

假如我们用atomic  来修饰一个数组  对数组进行赋值  获取 是可以保证线程安全的  但是当我们对这个数组进行操作时  如  增  删   就不在atomic 的负责范围之内了  也就是说 用atomic修饰一个数组 对数组进行 增加 删除操作 是不保证线程安全的 只对 赋值 获取有效

noatomic

引用计数

return / strong

return 一般在MRC中使用

strong 一般在ARC中使用

这两个是用来修饰对象的

assign / unsafe_unretained

assign 可以修饰基本类型 也可以修饰对象类型

unsafe_unretained 只有在MRC中 使用的比较频繁


悬垂指针 也就是 assign 所修饰的对象在被释放之后  assign指针仍然指向原对象 地址  这是如果通过assign指针继续访问源对象 可能就会由于悬垂指针的原因 导致内存泄漏 或 程序异常

weak


copy


浅拷贝 会发生引用计数的改变 不会开辟新的内存空间


两块内容相同的不同空间






进行拷贝之后 可变数组 copy 过后变成了 不可变数组 在调用时候很可能出现异常 crash

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容