Re: [問題] 關於使用autorelease或直接使用release …
※ 引述《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
07/19 00:38, 1F
→
07/19 00:45, , 2F
07/19 00:45, 2F
討論串 (同標題文章)
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章