作者neric8709g (0o圓圓o0)
看板MacDev
標題[問題]IOS6 記憶體爆炸 是圖片要釋放的問題嗎?
時間Thu Jan 31 16:46:13 2013
一開始一個開頭的rootView 我用addSubView來產生一個新的View覆蓋他
新的View的parent就是rootView
我每個newView1,newView2裡面都有scrollView和pageControl來做
翻頁的效果,一個scrollView裡面都有4~6張圖片
從rootView到newView1再到newView2程式會當掉重開
像是記憶體不足的問題
我程式是用IOS SDK6 撰寫的
IOS6把viewDidUnload給刪掉了,官方說改用didReceviewMemoryWarning來替換
我在畫面切換後會把self.view=nil,scrollView=nil,把會用到的元件或陣列給nil
不過好像不是這樣做,請問要如何釋放掉?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.128.88.208
1F:→ s8911124:收到didReceviewMemoryWarning代表記憶體不足,可以把現 01/31 17:38
2F:→ s8911124:在不用到的view先釋放掉。 01/31 17:38
3F:→ neric8709g:我有寫self.view=nil 請問這樣有釋放掉嗎 ? 01/31 19:09
4F:推 Adonisy:不會是 ARC的通用 bug吧... 01/31 19:40
5F:推 osnq:是[view release]嗎?我現在project 設auto-release 就沒在 01/31 20:57
6F:→ osnq:理會了,不過其實auto-release 不好... 01/31 20:58
7F:→ neric8709g:可是IOS6好像把 view release 刪掉了@@ 01/31 21:04
8F:→ s8911124:有開ARC的情況下,沒辦法直接release。你可能要先看一下 01/31 21:36
9F:→ s8911124:設定,self.view=nil是透過setter的方式設成nil 01/31 21:41
10F:→ s8911124:retainCount會減,retainCount=0才會釋放 01/31 21:42
11F:→ s8911124:可以用analyze分析一下有可能leak的點 01/31 21:43
12F:→ neric8709g:我是設定成ARC沒錯 在ARC下是不是也要手動釋放一些圖片 01/31 22:10
13F:→ neric8709g:和一些不會用到的View 01/31 22:11
14F:→ yuanruo:沒法 頂多設成nil 你要手動 它也會報錯~ 01/31 22:20
15F:→ neric8709g:那是scrollView裡面的image的問題嗎?一張圖片差不多像 01/31 22:25
16F:→ neric8709g:素幾乘幾就夠了 還有要多少dpi 01/31 22:28
17F:→ neric8709g:我是要做在ipad上 怕圖上面的字會不清楚 01/31 22:30
18F:→ s8911124:如果你放大的時候,圖會糊掉,那可能要考慮用Quartz2D來 01/31 22:38
19F:→ s8911124:畫,scrollView的話可以一次只把上一張,目前這張,下一張 01/31 22:39
20F:→ s8911124:讀進來,其它就先釋放 01/31 22:39
21F:→ neric8709g:我現在就是滑動才把圖讀進來,之前的先釋放掉,我想請 01/31 22:50
22F:→ neric8709g:問釋放圖的寫法? 01/31 22:51
23F:→ s8911124:[self.imgView removeFromSuperView]; self.imgView=nil 01/31 23:03
24F:→ neric8709g:我現在scrollView是如大大所說的寫法撰寫,不會用到的 01/31 23:28
25F:→ neric8709g:View會把他釋放掉,我程式正在更改,謝謝大大們指教 01/31 23:30
26F:→ neric8709g:感謝感謝 01/31 23:30