作者sorkayi (尋找奶昔)
看板MacDev
標題[問題] 舊程式 加入 ARC 功能
時間Fri Dec 7 22:16:11 2012
各位大大好
目前我有一支舊的程式
當初寫的人都是用 alloc 的方式去做任何事情
像是 ABCLabel.text = [[NSString alloc] initWithString:@"XXX"];
但是之後都沒有在 release 那個 NSString 所以會造成 memory leak 對嘛?
不知道我想的對不對 因為常常會造成 crash
我現在只要在 build 的時候勾選 ARC Yes 這樣就行了嘛
還是也需要手動去加入 autorelease@@?
如
ABCLabel.text = [[[NSString alloc] initWithString:@"XXX"] autorelease];
感謝各位大大的收看...
--
走召石更白勺口拉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.2.251
※ 編輯: sorkayi 來自: 122.117.2.251 (12/07 23:04)
1F:→ darktt:請愛用[NSString stringWithForma:@"XXX"] 12/07 23:23
2F:→ darktt: ^Format 12/07 23:24
有 我已經開始在修了
※ 編輯: sorkayi 來自: 122.117.2.251 (12/07 23:31)
3F:→ uranusjr:Xcode 有個 Convert to Objective-C ARC 的工具, 如果他 12/07 23:48
4F:→ uranusjr:真的從頭到尾都只有 ini 沒有 release 的話套起來應該超 12/07 23:48
5F:→ uranusjr:快, 你加了 autorelease 轉換的時候要修的地方還更多XD 12/07 23:48
6F:→ darktt:不要太期待ARC,因為它什麼時候被釋放你都不知道 12/08 00:31
剛剛已經有用那個工具轉換了
不過在 addSubView 後 ibaction 都不能用了
才發現 viewcontroller 被 auto release....
※ 編輯: sorkayi 來自: 122.117.2.251 (12/08 01:09)
7F:→ uranusjr:所以原作者寫了 [self addSubview:viewController.view]; 12/08 01:37
8F:→ uranusjr:這種東西...OMG HEE Z DOING EVERYTHING WRONGZ 12/08 01:39
u 大 我不懂你的意思
這個寫法是 A_ViewController 中 寫 B_ViewController* b = [[B_ViewController all]
initWithNib......];
然後 [self.view addSubView b.view];
你的意思是說這樣寫不好嘛@@
※ 編輯: sorkayi 來自: 36.239.202.219 (12/08 14:00)