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标注这是一个类。

相关推荐
世人万千丶4 小时前
鸿蒙日志体系高级应用:HiLog分级输出/隐私脱敏/远程日志采集/线上问题精准溯源方案
学习·harmonyos·鸿蒙
ctlover7 小时前
Python学习第 5 日
学习
六点_dn8 小时前
RabbitMQ学习笔记-部署和使用
笔记·学习·rabbitmq
2501_926978339 小时前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
天天爱吃肉82189 小时前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车
IT199510 小时前
Dify 实战笔记:工作流核心玩法 + 开源 AI 应用全解析
笔记
MartinYeung511 小时前
[论文学习]OSReward:为跨平台计算机使用奖励模型建立标准化评估
人工智能·学习
dong13269711 小时前
Agent Skills学习笔记
笔记·学习
for_ever_love__11 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
世人万千丶12 小时前
鸿蒙Crash高级捕获与异常监控:全局异常兜底/崩溃栈解析/符号表还原/智能聚类/闭环修复
学习·机器学习·华为·数据挖掘·harmonyos·鸿蒙·聚类