gpt4 book ai didi

cocoa - NSOutlineView 和 NSTreeController 可以处理数千个对象吗?

转载 作者:行者123 更新时间:2023-12-03 17:26:17 25 4
gpt4 key购买 nike

背景

  • 带有 GC 的 Snow Leopard 10.6.4 上的核心数据应用

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

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

    <
  • 主上下文有数千个对象

问题

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

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

问题

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

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

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

最佳答案

底线?我认为我需要以通常的方式优化我的应用程序。此外,还发出了大量 KVO 通知,因此也许显示更少的数据是正确的方法。当我加快了我的应用程序的速度后,我可能会在此处进一步报告。

更新:2011 年 9 月

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

我目前正在重新设计应用程序的外观,以使其运行速度更快。据我所知,NSTreeController 最多只能处理几百个条目。数千个条目意味着用户无论如何都会感到困惑。我重新设计了用户界面,变得更加简单。现在我改用表格 View ,这要快得多。

关于cocoa - NSOutlineView 和 NSTreeController 可以处理数千个对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com