对象在 iOS5 上被释放,但在 iOS4 上不是.如何追踪



我有这个方法(别人写的!

- (IBAction)showMasterPopover:(id)sender
{
if (_hiddenPopoverController && !(_hiddenPopoverController.popoverVisible)) {
// Inform delegate.
if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:popoverController:willPresentViewController:)]) {
[(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self popoverController:_hiddenPopoverController  willPresentViewController:self.masterViewController];
}
// Show popover.
[_hiddenPopoverController presentPopoverFromBarButtonItem:_barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
else if (_hiddenPopoverController.popoverVisible) 
{
    [_hiddenPopoverController dismissPopoverAnimated:YES];
}

}

经过几个非常可重复的步骤

[_hiddenPopoverController presentPopoverFromBarButtonItem:_barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

导致应用程序崩溃,并显示以下内容:

*** -[ServerFolderController respondsToSelector:]: message sent to deallocated instance 0x85a9080

这在iOS5.x上崩溃,但在iOS4上不会崩溃。有什么想法吗?从仪器中我收集到有一个僵尸物体。

我被难住了!谢谢

这是

正常的)在iOS5中崩溃而不是在iOS4中崩溃。从我个人的到期来看,Apple在iOS5中更改了许多内部"东西",因此当iOS4中稳定时,我的应用程序可能会在iOS5中崩溃。但!!!在所有情况下,这都是我的错,我的错误是没有足够的保留或错误的自动释放。所以只有你能在你的代码中找到"这个错误"。我认为您的委托对象有问题。

最新更新