1

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

- (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 上崩溃。有任何想法吗 ?从仪器中我收集到有一个僵尸对象。

我难住了!谢谢

4

1 回答 1

1

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

于 2012-06-13T05:34:10.903 回答