【问题标题】:quartz core generating loads of VM: UILabel(CA Layer)石英核心生成VM的负载:UILabel(CA层)
【发布时间】:2017-04-26 02:59:43
【问题描述】:

我有一个从服务器动态拖动消息的应用程序,当滚动到顶部时,旧消息将被检索并像其他消息传递应用程序一样显示在屏幕上,但我的应用程序不断生成 UIlabel,即使毕竟没有更多旧消息出现旧消息被检索,如果列表正在滚动,仍然会生成 UIlabel,并且来源来自 QuartzCore,负责调用者是 CA::Render::Shemem::new_shmem(unsigned long)。

任何人都可以帮助我,我在开发 ios 方面很新,而且我使用的是 Objective-C,内存问题导致我的应用程序在每个版本的 iphone 上崩溃,因为 UILabel 堆栈并且似乎它永远不会释放,除非我切换到其他聊天室。感谢您的帮助!

【问题讨论】:

  • 欢迎堆栈溢出!很难为您提供帮助,因为您没有向我们展示创建 UILabel 的代码。编辑您的问题以包含它。
  • @robmayoff 我不确定我应该发布代码的哪一部分,因为我不知道是什么代码产生了这个问题,当我'我测试为什么应用程序在滚动到一定长度时崩溃,如果聊天记录太长,它将无法显示所有旧消息,我如何检查哪个代码对生成的 UILabel 负责,因为它只说quartzCore 作为负责任的图书馆...非常感谢!

标签: ios objective-c memory-leaks uilabel quartz-core


【解决方案1】:

听起来您正在向滚动视图添加标签。更改您的应用程序以使用表格视图或集合视图来显示消息。这些类会自动删除和重用滚动到屏幕外的单元格。

【讨论】:

  • 我使用profile->Allocation Sumary启动了应用程序,我发现内存使用量增加了,它主要用于VM:CoreAnimation,因为图像和视频等所有文件和数据都没有堆叠,那么你会怀疑哪些情况会导致内存释放失败?非常感谢
猜你喜欢
  • 1970-01-01
  • 2013-12-29
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多