4

当我打开特定的 Storyboard 场景时,我的应用程序因错误而崩溃:“已释放对象的校验和不正确 - 对象可能在被释放后被修改”。我也遇到了一些“EXC_BAD_ACCESS”崩溃,通常是其中之一。我找不到有问题的指针,所以我用NSZombieEnabled. 这导致我在崩溃时收到此消息: *** -[NSContentSizeLayoutConstraint secondItem]: message sent to deallocated instance 0x1e0a5220

现在,我搜索了这个项目,[NSContentSizeLayoutConstraint secondItem]甚至 单独搜索。它在项目中不存在。我对 Objective-C 还是很陌生,不知道下一步该做什么。此外,它会在设备和模拟器上运行得很好,就像 5 次中的 1 次一样。这也发生在: ,这在我的项目中也没有。另外,. 它们不断变化,我在项目中的任何地方都找不到这些。它有时运行得很好,通常在模拟器上运行,这真的很令人沮丧,因为当设备崩溃时,错误会在设备上不断变化。NSContentSizeLayoutConstraintsecondItem-[NSAttributeDictionary release]:*** -[PitchDetector addSamples:inNumberFrames:]:

要在情节提要中切换视图,我正在使用此代码。这是在主屏幕上的 viewDidLoad 中: x1ViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"x1ViewController"];

当按下按钮加载它时: - (IBAction)button4:(id)sender { [self presentViewController:x1ViewController animated:YES completion:nil]; }

我已经以完全相同的方式设置了所有其他页面转换,并且它们都可以正常切换。这是唯一的困扰。

这是堆栈跟踪: 在此处输入图像描述

这是我在分析中发现的一件奇怪的事情,我不确定如何解决: 在此处输入图像描述

更新:页面加载后,我偶尔也会在控制台中收到消息“错误:1768843636”。很奇怪。

4

1 回答 1

2

要在情节提要中切换视图,我正在使用此代码。这是在viewDidLoad主屏幕上:

x1ViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] 
                        instantiateViewControllerWithIdentifier:@"x1ViewController"];

嗯,有你的问题。viewDidLoad太快了。您甚至还没有进入界面,并且已经在尝试进入界面的下一个状态。此外,您冒着尝试在不同场合呈现相同视图控制器实例的风险。

将该代码移至您的按键代码。在您展示它之前,您不需要实例化此视图控制器。每次呈现时使用一个新的视图控制器实例。

于 2014-01-31T19:04:53.530 回答