Objective-C学习笔记(内存管理、property参数)4.9

**1.引用计数器retainCount:**每个对象都有这个属性,默认值为1,记录当前对象有多少人用。

为对象发送一条retain/release消息,对象的引用计数器加/减1,为对象发一条retainCount,得到对象的引用计数器值,当计数器为0时自动调用对象的dealloc方法。

手动发送消息:-(id)performSelector:(SEL)@Selector

Person *p = Person new;

SEL s = @selector(func);

p performSelector:s1; 等于 p func;

**2.MRC:**手动引用计数/手动内存管理:手动发送retain和release。

**ARC:**自动引用计数/手动内存管理: 自动 发送retain和release。

**3.野指针:**OC中的野指针:指针指向的对象已经被回收了。避免野指针:设置nil。

4.回收内存空间的本质:代表变量所占的空间可以分配给其他人了。

5.僵尸对象:1个已经被释放的对象,但是这个对象所占的空间还没被分配。

**6.内存泄漏:**对象没有被及时回收,一直在内存中,直到程序结束。

7.MRC模式下,对象时OC对象,setter和dealoc应该写内存管理机制。

**8.@property:**自动生成私有属性,属性的getter和setter方法的声明和实现。

@property(参数1,参数2)数据类型 名称;

参数: 多线程相关的:atomic :默认值,setter方法有线程安全锁,效率低;**nonatomic:**反之。

setter方法相关的:assign :默认值,setter方法直接赋值;retain:生成符合MRC内存管理的setter方法:先判断对象是否是同一个,如果不是,release旧的,retain新的。

只读只写:readwrite :默认值,同时有getter和setter;readonly:只有getter。、

生成getter和setter方法名称相关的:可以修改setter和getter方法名称。

9.@class:A包含B、B包含A的循环嵌套问题,用@class标注这是一个类。

相关推荐
鬓戈9 分钟前
开源中文输入法技术调研与自建方案
学习·开源
摇滚侠31 分钟前
《Spring Boot 3:高级与架构设计》第 2 章 IOC 容器的高级机制 编程式驱动 IOC 阅读笔记 7
java·spring boot·笔记
only-lucky34 分钟前
QML深入学习七(MVC模块)
学习·mvc
带金箍的至尊宝35 分钟前
系统架构设计师笔记 03:CPU 结构、Cache 与总线怎么考
笔记·系统架构
2401_850122041 小时前
高温耐油热缩套管选型:材料、温度和油液要匹配
经验分享·笔记·科技·学习
Xudde.1 小时前
Me and My Girlfriend 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
Canmag 兴隆磁性1 小时前
自动装盒设备 AO-WCMF
学习·永磁材料·充磁
imDwAaY1 小时前
Bean的生命周期
java·笔记·后端·学习·spring·dubbo
坤坤子吖2 小时前
C++11——Lambda、function、bind 与可调用对象
c++·笔记·学习
优化Henry2 小时前
LTE站点以太网光模块告警处理实践
运维·网络·笔记·学习·信息与通信