Re: [問題] 關於使用autorelease或直接使用release …

看板MacDev作者 (zonble)時間16年前 (2009/07/19 00:29), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《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)

07/19 00:38, , 1F
cool~
07/19 00:38, 1F

07/19 00:45, , 2F
Wow, this is nice...
07/19 00:45, 2F
文章代碼(AID): #1AOVXrxB (MacDev)
文章代碼(AID): #1AOVXrxB (MacDev)