多对象的内存管理

以QQ斗地主为例,三个人进一个房间;

有以下情景:

1》首先创建一个房间;(retainCount +1),再创建一个人(retainCount +1);

2》每个人进房间,表明这个人在用这个房间;(每进来一个人,retainCount +1);

3》当房间没人时,代表人不在用这个房间,房间也就会消失;(每离开一个人,retainCount -1)

4》当人要换房间时,之前用的那个房间的retainCount -1;新房间被创建 并使用,retainCount +1+1;

5》游戏关闭时,所有的人和房间对象全部都要被销毁;

首先是人这个类中的实现:

多对象的内存管理_第1张图片
Person.h
多对象的内存管理_第2张图片
Person.m

其次是房间这个类中的实现

多对象的内存管理_第3张图片
Room.h
多对象的内存管理_第4张图片
Room.m

最后是main函数中的实现


多对象的内存管理_第5张图片

你可能感兴趣的:(多对象的内存管理)