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

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

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

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

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

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號