看板 MacDev 關於我們 聯絡資訊
※ 引述《uranusjr (←這人是超級笨蛋)》之銘言: : ※ 引述《atst2 (atst2)》之銘言: : 這邊還有一種寫法 : - (void)setMyString:(NSString *)newString : { : [newString retain]; : [_myString release]; : _myString = newString; : } 有種比較保險的方法是這樣寫: - (void)setMyString:(NSString *)newString { id tmp = _myString; _myString = [newString retain]; [tmp release]; } 主要原因是,在 Multi thread 的環境下會比較安全。以前面的狀況來說- : - (void)setMyString:(NSString *)newString : { : [newString retain]; : [_myString release]; // 如果這個時候,另外一個 thread 呼叫到 _myString // ,而 _myString 沒有指到任何一個東西上,這樣就會爆炸… : _myString = newString; : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.187.184 ※ 編輯: zonble 來自: 114.44.187.184 (07/19 00:30)
Blueshiva:cool~ 07/19 00:38
uranusjr:Wow, this is nice... 07/19 00:45