oc44 多物件記憶體管理

2021-09-07 14:25:47 字數 1055 閱讀 4659

//

room.h

#import

@inte***ce

room : nsobject

@property

int no;//

房間號@end

//

room.m

#import

"room.h

"@implementation

room

- (void

)dealloc

@end

//

#import

#import

"room.h

"@inte***ce

person : nsobject

- (void)setroom:(room *)room;

- (room *)room;

@end

//

#import

"person.h

"@implementation

person

//當a物件想使用b物件一定要對b物件進行一次retain, 這樣才能保證a物件存在b物件就存在, 也就是說這樣才能保證無論在什麼時候在a物件中都可以使用b物件

//當a物件釋放的時候, 一定要對b物件進行一次release, 這樣才能保證a物件釋放了, b物件也會隨之釋放, 避免記憶體洩露

//總結一句話: 有增就有減

- (void)setroom:(room *)room //

room = r

- (room *)room

- (void

)dealloc

@end

//

//多個物件的記憶體管理

#import

#import

"person.h

"#import

"room.h

"int main(int argc, const

char *ar**)

return0;

}

OC中記憶體管理 MRC 多物件管理

2019獨角獸企業重金招聘python工程師標準 將以乙個精武團這個遊戲來做例子。遊戲者需要開房,那麼這個房子就這個人使用,當這個人還在這個房間的時候就不能釋放這個房間,否則這個遊戲就有個bug,同樣的道理,這個房子可以被多個人引用。那什麼時候釋放這個房子就是個關鍵 當這個房子無人使用的時候就是釋放...

OC物件記憶體管理

objective c物件記憶體管理 1,管理範圍 任何繼承了nsobject的物件,基本資料型別 int,char,float,double,struct,enum等 是不需要管理記憶體的。2,引用計數器 每個oc物件都有自己的引用計數器,是乙個整數,表示 物件被引用的次數 既有多少人正在使用這個...

OC物件記憶體管理

nsobject a nsobject alloc init 這時候在堆中分配一塊記憶體,並在棧中建立變數a指標,並將在堆中分配的記憶體起始位址賦值給這個指標a 這樣棧中的指標a就指向了堆中的物件。通過a可以訪問堆中物件。ios物件在arc下是編譯器做記憶體管理,在適當的地方插入relase 當自動...