我已經開始學習Three20,我有一個簡單的問題,關於TT_RELEASE_SAFELY
到現在爲止我喜歡寫這樣的代碼:設置對象發行後零 - TT_RELEASE_SAFELY
UILabel *lab = [[UILabel alloc] initWithFrame:rect];
[self.view addSubview:lab];
[lab release];
在這裏,我想主池負責釋放lab
的內存。
現在我已經找到TT_RELEASE_SAFELY
這就好比是這樣定義的:
#define TT_RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }
正如你所看到的,發佈後,它會將對象nil
。
我想知道兩種方式之間的區別以及哪種方式更好。
謝謝。
我這麼認爲,這是一種最佳實踐! – scorpiozj 2011-05-12 03:02:52
通過「有效」,我假設你的意思是「不會在這個特定點上崩潰」。它不會「做些什麼」(正如名字所暗示的),也許它應該是'[obj wontDoAnything];'而不是? – 2011-05-12 03:04:51
@Sedate Alien:它不會在沒有被調用的方法上做任何事情,但如果你選擇使用它,它會給你一個有效的返回值(0,NO等)。 – titaniumdecoy 2011-05-12 03:08:26