【问题标题】:Can NSOutlineView and NSTreeController handle thousands of objects?NSOutlineView 和 NSTreeController 可以处理数千个对象吗?
【发布时间】:2010-11-11 16:13:36
【问题描述】:

背景

  • 带有 GC 的 Snow Leopard 10.6.4 上的 Core Data 应用程序

  • 我有一个由 NSTreeController 使用绑定支持的 NSOutlineView

  • 我正在后台 NSOperation 子类上创建数十个对象,保存并使用 mergeChangesFromContextDidSaveNotification 合并到主上下文中,所有这些都按照 Apple 文档中的建议

  • 主上下文有数千个对象

问题

我遇到了很多性能问题。有时合并可能需要几秒钟,这会锁定我的 UI。它似乎也使用了相当多的内存。

我最近发现others have had this issue too。我开始认为这是 NSTreeController/NSOutlineView 与绑定组合的限制。

问题

  1. NSOutlineView 和 NSTreeController 能否高效处理数千个对象?

  2. This post 似乎暗示这是 10.6.2 引用 rdar://7139579 的问题。有谁知道这是否已“修复”?

如果有任何建议,我将不胜感激。

【问题讨论】:

    标签: cocoa core-data cocoa-bindings nsoutlineview nstreecontroller


    【解决方案1】:

    底线?我想我需要以通常的方式优化我的应用程序。此外,有很多 KVO 通知被触发,所以可能显示更少的数据是要走的路。当我加快了我的应用程序时,我可能会在这里进一步报告。

    更新:2011 年 9 月

    自从发布此问题以来,我学到了很多东西。我的一个重要教训是,有时,你必须放弃你想要的东西,并接受这将是一种设计权衡。

    我目前正在重新设计我的应用的外观以使其更快。我了解到,NSTreeController 最多只能处理几百个条目。成千上万的条目意味着无论如何用户都会感到困惑。我重新设计了我的 UI,使其更简单。现在我改用表格视图,速度要快得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      相关资源
      最近更新 更多