2017-04-26 77 views
0

我有一個應用程序,它動態地從服務器拖動消息,滾動到頂部,舊郵件將被檢索並顯示在屏幕上,就像其他消息應用程序,但我的應用程序保持生成UIlabel,即使在檢索完所有舊消息之後沒有更多的舊消息出現,如果列表正在滾動,並且源自QuartzCore,負責的調用者是CA :: Render :: Shemem ::仍然會產生UIlabel :: new_shmem(無符號長整數)。石英核心生成虛擬機的負載:UILabel(CA層)

任何人都可以幫助我,我在開發ios方面很新穎,而且使用objective-C,內存問題導致我的應用程序在UILabel堆棧的每個版本的iphones上崩潰,似乎它永遠不會釋放,除非我切換到其他聊天室。謝謝你的幫助!!

+1

歡迎來到堆棧溢出!很難幫助你,因爲你沒有向我們展示創建UILabels的代碼。編輯您的問題以包含該問題。 –

+0

@robmayoff我不確定應該發佈哪部分代碼,因爲我不知道哪些代碼會產生該問題,當我測試爲什麼應用程序崩潰時,生成的過量UILabels顯示在配置文件記錄中它滾動到一定的長度,如果聊天記錄太長,它將不能顯示所有的舊消息,我怎麼能檢查哪個代碼負責生成UILabel,因爲它只是說quartzCore是負責任的庫。 。 非常感謝! –

回答

0

這聽起來像你正在向卷軸視圖添加標籤。將您的應用更改爲使用表格視圖或集合視圖來顯示消息。這些類自動刪除並重用從屏幕滾動出來的單元格。

+0

我使用profile-> Allocation Sumary啓動了應用程序,並且我觀察了越來越多的內存使用情況,它主要用於VM:CoreAnimation,因爲所有文件和數據(如圖像和視頻都沒有堆疊),所以您會懷疑哪些場景導致內存釋放失敗?非常感謝 –