第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在使用reuseIdentifier的情況下,UITableview的cell在什么情況下還會被dealloc?

在使用reuseIdentifier的情況下,UITableview的cell在什么情況下還會被dealloc?

慕田峪4524236 2019-04-23 15:18:23
具體情況是,我需要在tableview中加載網(wǎng)絡(luò)圖片。使用了notification的方法發(fā)送消息。但有時(shí)候cell太多了,會crash。查看log,發(fā)現(xiàn)是有對應(yīng)的cell在原本應(yīng)該能接收正常的notification的時(shí)候已經(jīng)被提前dealloc了。這里疑問有兩點(diǎn):1.notificationcenter不是應(yīng)該對observer有索引計(jì)數(shù)么?為何還會被dealloc?2.uitableview里面的cell在什么情況下會被dealloc呢?難道是內(nèi)存不夠用?reuseIdentifier的方法應(yīng)該好使的啊。網(wǎng)上查了下,對給dealloc的對象發(fā)送notification消息的處理,一般是在對象dealloc的時(shí)候,注銷掉觀察者。但是ARC下面是沒有dealloc的啊。向各位大俠求教
查看完整描述

2 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

1.notificationcenter沒有retainobserver,這一點(diǎn)寫個(gè)demo很容易驗(yàn)證
2.個(gè)人推測,uitableview維護(hù)了一個(gè)"reusecell"棧,假如你之前同時(shí)顯示了10個(gè)cell,那么至少alloc了10個(gè)cell,也就是說棧里有10個(gè)cell。當(dāng)后來屏幕上只需要顯示3個(gè)cell的時(shí)候,那么棧里有7個(gè)空閑待用的cell。這個(gè)時(shí)候如果內(nèi)存不足,uitableview會把未使用的cell釋放掉。當(dāng)然以上這些純屬個(gè)人推測,未經(jīng)過嚴(yán)格驗(yàn)證。
3.ARC下可以重寫dealloc,只是在重寫的dealloc里面,不允許執(zhí)行[superdealloc];,這個(gè)官方文檔上有說明,也就是說,你仍然可以重寫cell的dealloc方法,在其中remove掉obsever,這個(gè)也是必須要做的。
                            
查看完整回答
反對 回復(fù) 2019-04-23
  • 2 回答
  • 0 關(guān)注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號