ios 開發筆記 property和成員變數

2021-09-08 08:39:18 字數 858 閱讀 9737

因為看的資料比較雜,一直很迷惑這個,今天花了點時間整理一下思路

比如下面的一些寫法,不同的教程都不一樣:

self.test=abc;

test=abc;

[test release];

[self.test release];

self.test=nil;

總結下:

@property(nonatomic,retain) nsstring *test;

@synthesize 

test

1,這個操作在新版的xcode等於同時聲名了成員變數test,並生成其getter\setter方法。

2,@property的retain等引數只是告訴編譯器怎麼生成(當初我理解成test和self.test是兩個不同的指標)。

3,self.test=abc等於使用了@synthesize生成的setter,其過程有進行記憶體管理,不會造成記憶體洩漏,而test=abc則直接更改指標指向,所以盡量使用self.來賦值。

4,self.test=nil;等於執行了

[test release];

[test=nil];

看一下 @synthesize生成的setter是怎樣工作的:

-(void)setstring:(nsstring *)test {

if (string != newstring) {

[string release];

string = [newstring retain];

iOS開發筆記

1.預設快取策略下 useprotocolcachepolicy 對於靜態資源的訪問,請求頭會自動帶上 if none match if modified since 快取方面,響應頭帶有 last modified etag 兩個字段 儘管charles抓包結果為304,但是 urlsession...

ios開發筆記 4

title ios開發筆記 4 date 2016 02 21 01 11 55 categories ios tags ios,筆記 一般此問題 都是由inte ce build與 中iboutlet的連線所引起的。可能是在 中對iboutlet的名稱進行了修改,導致inte ce build中的...

我的ios開發筆記

這個星期開始學習 ios開發 由於本人記性不好 將知識點在這篇文章做乙個備忘 以下是網路上摘錄知識點的索引。json 我用的是jsonkit property synthesize property是乙個屬性訪問宣告,擴號內支援以下幾個屬性 1,getter gettername,setter se...