在我的 OS X 应用程序中,它使用 Core Data
我的表格 View 在滚动时非常滞后,我在那里只有大约 100 多行......我正在使用 Cocoa 绑定(bind) NSArrayController
在 TableView 中显示我的数据。
我只有一个具有 13 个属性的实体,但该 TableView / ScrollView 仍然非常滞后。
是否存在导致该行为的一些常见错误/错误编码?滚动时我的 CPU 使用率约为 85%。
有人知道这是为什么吗?我正在使用 Xcode 7 发布版本。
更新:
更新 2:我使用 NSVisualEffectView 并重写 allowsVibrancy 以返回 true,因此我让表格 View 的替代行颜色与我的另一个项目中的一样 Github- Debter
如果我为我的 View 启用核心动画层,它对滚动有很大帮助,但我的 Storyboard开始做一些陈旧的东西,我不能再处理任何与 UI 相关的东西了。
最佳答案
如果没有看到您的 UITableView
delegate
和 data source
的代码,就很难知道确切的问题。
一些坏习惯是:
- 通过任何
UITableViewDataSource
方法或在呈现UITableViewCell
时从 CoreData 加载数据。 - 在主线程上加载图像或在后台加载图像而不将它们缓存在本地存储中。
- 在
tableViewCellForIndexPath
或其他数据源方法上执行复杂的操作(如图像处理)。
可能会帮助您找到问题的一些问题:
- 您使用的是
NSFetchedResultsController
吗?如果您的数据集很长(尽管您提到不是),它可能会提高性能。 - 您检查过线程数了吗?如果它太高,您可能需要使用
NSOperationQueue
来限制您的后台任务。
关于macos - 滚动时 NSTableView 非常滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32634685/