set方法記憶體分析 2

2021-07-09 14:45:12 字數 1028 閱讀 4864

應用場景與上乙個分析場景相同,都是人去擁有一輛車,這次的問題是我不是去重新擁有一輛車,而是我去多次set同一輛車的時候,會存在一些問題,如:

#import

#import

"person.h"

int main(int argc, const

char * argv)

return

0;}

#import 

#import "car.h"

@inte***ce

person : nsobject

- (void)setcar:(car *)car;

- (car *)car;

- (void)driver;

@end

#import "person.h"

@implementation

person

- (void)setcar:(car *)car

- (car *)car

- (void)driver

- (void)dealloc

@end

#import "car.h"

@implementation

car- (void)run

- (void)dealloc

@end

上面的方法導致的問題就是物件會被提前釋放掉,因此:對person類中的set方法進行修改後:

#import "person.h"

@implementation

person

- (void)setcar:(car *)car

}- (car *)car

- (void)driver

- (void)dealloc

@end

說明:只有當set的不是同乙個物件的時候,我才把原來的物件的計數器值減一,將原來的物件銷毀掉,防止記憶體洩露

set方法記憶體分析 1

這個之前的記憶體管理分析中,存在一些問題,比如說在多個物件中,要保證乙個物件沒有被系統 之前,不能被銷毀掉,就像下面的這個demo一樣,person有一輛車,但是他覺得這輛車他不喜歡了,他想換一輛車,那我有2個car的物件,該怎麼去處理這個記憶體管理的問題.import import person....

set方法與記憶體管理

區域性變數,使用完以後不再使用就release 全域性變數,在dealloc裡面release。指標物件要自己操作自己。retaincount指的是物件引用計數。self賦值方式 computer cmp computer alloc init cmp物件retaincount 1 self.com...

set方法的記憶體管理細節

一 多個物件之間的記憶體管理 1.你想使用 占用 某個物件,就應該讓物件的計數器 1 讓物件做一次retain操作 2.你不想再使用 占用 某個物件,就應該讓物件的計數器 1 讓物件做一次release 3.誰retain,誰release 4.誰alloc,誰release 二 set方法的記憶體...