我希望我能以正确的方式提出这个问题。我没有显示问题的代码,所以这可能是个问题。
我正在使用UISplitViewController。我担心的是,该应用程序在具有紧凑水平尺寸类的设备上运行时(即,它看上去没有沿着UISplitViewController排列)。 “显示”序列用于显示DetailViewController。后退按钮用于关闭该控制器。使用后退按钮时,不会从内存中释放控制器。在显示另一个详细信息控制器之前,它将一直保留在DetailViewController中。问题是我允许用户向左滑动MainViewController中的项目以将其删除。并且如果在DetailViewController上KVO仍在观察被删除的对象或以其他方式引用该对象,则会导致应用崩溃。我无法在DetailViewController的viewWillDisappear:
中删除观察者,因为我实际上需要保留它们。我没有代码来显示此问题,因为我相信这是UISplitViewController的设计行为,而且我不确定会显示什么代码。在某些情况下,这种行为是有道理的-但在具有紧凑水平尺寸类的设备上,其中UISplitViewController折叠了,我认为这种行为是不可取的。有经验的开发人员将如何处理这种情况?我一直在想些骇人听闻的事情(设法强制释放DetailViewController的方法),但是处理此问题的正确方法是什么,以使我的应用程序在我描述的情况下不会崩溃?
我确实找到了类似的问题(尽管我的问题与其他问题有关,包括正在引起的崩溃);但是无论如何都没有这个问题的答案,评论中(针对我的问题)描述的解决方案让人感到沮丧。