coreData 和 collectionView 减慢应用程序
Posted
技术标签:
【中文标题】coreData 和 collectionView 减慢应用程序【英文标题】:coreData and collectionView slowing app 【发布时间】:2015-10-26 06:47:31 【问题描述】:我目前有一个 managedObjects 数组,它是我的 collectionView 的模型。 collectionView 通过在适当的 indexPath 访问数组中 managedObject 的各种属性来填充它的单元格。我注意到我的 collectionView 滚动不流畅,想知道我是否以错误的方式进行此操作,也许我应该改变我的方法。
我的模型是一个存储在 coreData 中的消息数组:
> var messages = [NSManagedObject]()
在我的 cellForItemAtIndexPath 中,我通过引用消息数组来填充 textView:
cell.textView.text = messages[indexPath].valueForKey("text") as!字符串
我的问题是这是否是填充 collectionView 的有效方法,或者访问 coreData 是否会减慢我的应用程序的速度,并且可能有更好的方法。谢谢
以下是查看仪器的结果。第一个值只是一个地址,但似乎占用了很多时间。不知道如何仅从符号的地址值中找出方法...
【问题讨论】:
你能发布一些代码来获得一些想法吗? 我已编辑问题以添加一些代码。基本上,虽然我只是想知道是否有更好的方法来使用存储在 coreData 中的数据填充 collectionView,或者这种方法是否可以。谢谢 在 NSManagedObjects 上操作绝对没问题,在您的情况下不应该成为性能杀手。一定还有另一件事会减慢 collectionview 的速度,但您需要显示更多代码才能了解。 谢谢朱利安。我的collectionView 没有更多内容。我添加了时间探查器的屏幕截图。我不知道符号名称区域中第一个只是地址的值是什么。或者可能与我对 textView 的故事板约束有关。我将尝试解决它并找出问题所在。感谢您让我了解核心数据。 如何填充数组?你为什么不使用获取的结果控制器? 【参考方案1】:不,这不是核心数据和收集视图。您在集合视图中使用的是UITextView
。将其替换为UILabel
,您的应用程序就会顺利进行。
我遇到了同样的问题,我按照我的建议解决了这个问题。但直到现在我还不明白为什么会这样。
【讨论】:
谢谢。我考虑过这样做,但我需要一些链接等的格式,这在标签上看起来很笨重。 我可能会认输并听从您的建议。我怀疑它与 textView 的约束有关 @alionthego 对于链接NSAttributedString
可能会来救援。而且,我很抱歉我真的无法弄清楚它为什么会起作用。我可能会调查它并在将来发布编辑。
您对 textView 的看法是正确的。我更改为标签,并且由于所有相同的约束等,波动和滞后立即消失了……问题是现在我的链接没有下划线和可点击,尽管使用了属性文本。我想我可以使用一个笨拙的解决方案来克服这个问题,但很高兴知道确切的问题是什么。我可能会再次修改 textView,看看我是否能找出导致延迟的原因。再次感谢您的帮助。以上是关于coreData 和 collectionView 减慢应用程序的主要内容,如果未能解决你的问题,请参考以下文章