setter和getter記憶體處理

2021-06-27 16:26:53 字數 1243 閱讀 9085

person.m

#import "person.h"

@implementation person

//析構函式

- (void)dealloc

//建構函式

- (id)initwithname:(nsstring *)name score:(nsarray *)score

return self;

}- (void)setname:(nsstring *)name

/*[name retain];

[_name release];

_name = name;*/}

-(nsstring *)name

- (void)setscore:(nsarray *)score

}- (nsarray *)score

@end

main.m

/*cocoa記憶體管理規則*/

/*5個

堆:需要的時候分配記憶體,不需要的時候手動釋放,編譯器不負責釋放該區域的記憶體空間

棧:需要的時候分配記憶體,不需要的時候自動釋放,編譯器負責釋放該區域的記憶體空間

全域性/靜態儲存區 :儲存全域性變數和靜態變數

常量儲存區:儲存常量,不可變的資料

自由儲存區:

*///1.使用alloc ,new,copy,mutablecopy生成的物件,物件出事引用計數值為1,需要手動釋放記憶體(堆上的物件);

//2.非以上四個方法生成的物件(便利初始化)物件初始化引用計數值為1,並且設定為自動釋放的,無需手動釋放(棧上的物件);

//3.使用retain持有的物件,需要保證retain和 release次數相等

/*setter和getter記憶體處理*/

person *person = [[person alloc]init];

nsarray *score = [[nsarray alloc]initwithobjects:@"3", nil];

nslog(@"score =%lu",[score retaincount]);

[person setscore:score];

nslog(@"score =%lu",[score retaincount]);

[score release];//如果不release記憶體洩露

nslog(@"score = %lu",[score retaincount]);

setter方法和getter方法

oc是一門物件導向的語言,物件導向的語言有三大特性,就是封裝性,繼承性和多型性.類的資料與功能的封裝,資料就是成員變數,功能就是類方法或者物件方法,對資料的封裝,也就是對成員變數的封裝,封裝就是把資料隱藏起來,只能用此類的方法才可以讀取或者設定資料,不可被外部任意修改是物件導向設計本質,降低了資料被...

getter 和 setter的運用

1 set 有且僅有乙個引數 2 get不允許有任何引數 var obj set有且僅有乙個引數 setc value 不允許有任何引數 getc setinterval function 16 如果僅有set,沒有get,這個屬性就是只寫屬性 如果僅有get,沒有set,這個屬性就是乙個唯讀屬性 ...

OC的setter和getter筆記

成員變數盡量不用 public 除非有特殊要求 一般使用 set方法 public不可寫 除非有特殊要求 set方法 1.作用 提供乙個方法給外界設定成員變數值,可以在方法裡面對引數進行相應過濾 2.命名規範 1 方法名必須以set開頭 2 set後面跟上成員變數的名稱,成員變數的收字母必須大寫 3...