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

相关推荐
y = xⁿ8 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
HugoStudio_SWAN11 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
sakiko_13 小时前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
自小吃多13 小时前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
存在morning14 小时前
【Paimon 学习笔记 三】工作流程:Paimon 的批写、流写、批读与流读
笔记·学习
老当益壮梁奶奶15 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
weixin_4660681117 小时前
《十分钟冥想》精读笔记(上):每天10分钟,给大脑做一次“系统减负”
笔记
凯尔萨厮17 小时前
Java学习笔记十(注解)
java·笔记·学习
JoannaJuanCV18 小时前
VLM学习-SFT(监督微调)
深度学习·学习·机器学习·大模型·视觉大模型·vlm·视觉编码器
程序员大雄学编程19 小时前
微积分43. 无穷积分入门:从概念到Python实战可视化
开发语言·python·学习·微积分