Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSOutlineView--重载项:重载子项:使我的应用程序崩溃_Cocoa_Reload_Nsoutlineview - Fatal编程技术网

Cocoa NSOutlineView--重载项:重载子项:使我的应用程序崩溃

Cocoa NSOutlineView--重载项:重载子项:使我的应用程序崩溃,cocoa,reload,nsoutlineview,Cocoa,Reload,Nsoutlineview,我正在尝试使用NSoutlineView中的reloadItem或reloadItem:reloadchildren函数重新加载大纲视图中的特定项目,但它会使整个应用程序崩溃。请告诉我一个解决方法,就像我也试图折叠该项并再次展开它,但它没有重新加载该项及其子项 现在我正在做的是: 我正在使用for循环手动保存大纲视图的状态,并在项目是否处于展开状态时保存该项目 调用NSOutlineView的重新加载数据函数 然后使用保存的状态,运行for循环以展开以前展开的所有项 但是这种方法有很多性能开销。

我正在尝试使用NSoutlineView中的
reloadItem
reloadItem:reloadchildren
函数重新加载大纲视图中的特定项目,但它会使整个应用程序崩溃。请告诉我一个解决方法,就像我也试图折叠该项并再次展开它,但它没有重新加载该项及其子项

现在我正在做的是:

  • 我正在使用for循环手动保存大纲视图的状态,并在项目是否处于展开状态时保存该项目

  • 调用NSOutlineView的
    重新加载数据
    函数

  • 然后使用保存的状态,运行for循环以展开以前展开的所有项

  • 但是这种方法有很多性能开销。这种方法还有其他解决办法吗

    是否有任何方法可以自动保存大纲视图的状态并重新加载并再次设置该状态?这些autosaveExpandedItems和setautosaveExpandedItems方法的作用是什么


    谢谢,如果在重新加载过程中尝试重新加载节点,这是10.6中的常见行为


    该方法(或一些更深入的相关方法)在10.6中进行了改进。实际上有一个NSAssert,但在启动时在awakeFromNib中加载节点时感觉像是崩溃,因为处理“不一致异常”的适当异常处理程序存在漏洞。

    可能是同步问题,请尝试在重新加载项周围使用NSLock或@synchronize。
    是否可以为此问题附加一些来源?

    请编辑您的问题以包含崩溃日志。