iOS开发修饰属性关键字

关键字类别

读写权限

关键字名称 顾名思义 关键字描述
readonly 只读 具有get方法
readwrite默认 读写 同时具有setget方法

原子

关键字名称 顾名思义 关键描述 特点
atomic默认 原子 生成setter方法代码会被加上线安全 安全效率
nonatomic 原子 生成setter方法代码不会被加上线安全 效率高、不安全

内存管理

关键字名称 顾名思义 所属时期 关键字描述 修饰类型
retain 保留 MRC 生成setter方法时,先判断新旧对象是否同一个对象,如果不是,release(释放)旧的对象retain(保留)新的对象 只能修饰NSObject对象,不能修饰基本数据类型
assign 分配 MRC 生成settet方法时,直接赋值 可以修饰基础数据类型和NSObject对象
strong 强的 ARC 对象引用,每对这个属性引用一次引用计数就会+1 只能修饰NSObject对象,不能修饰基本数据类型,是id对象的默认修饰符
weak 弱的 ARC 对象引用引用对象时,引用计数不变 只能修饰NSObject对象,不能修饰基本数据类型,防止循环引用delegate一般都用weak修饰
copy 复制 属于某个定时 用于对象的拷贝 只能修饰NSObject对象,不能修饰基本的数据类型,多用于NSString类型

拷贝拷贝指向某一内存指针,但是在内存中并没有开辟一块新的空间。此时retainCount+1,这个+1是指原对象的引用计数+1。

拷贝拷贝一个完整的对象,且在内存中开辟了一块新的空间。此时原对象引用计数不变,新对象引用计数+1

对于不可变对象,使用copy是浅拷贝使用mutableCopy是深拷贝
对于可变对象,使用copymutableCopy都是深拷贝

原文地址:https://blog.csdn.net/weixin_43899582/article/details/123080698

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44568.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注