ViewControllerA
使用模態segue打開ViewControllerB
。dismissViewControllerAnimated僅在iOS 7.1中導致EXC_BAD_ACCESS
ViewControllerA
:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
// ModalSegue is defined in the storyboard to point to ViewControllerB
[self performSegueWithIdentifier:@"ModalSegue" sender:self];
}
ViewControllerB
:
- (IBAction)cancelButtonTapped:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil]; // Causes crash
}
在iOS系統7.1,這會導致EXC_BAD_ACCESS崩潰。如果殭屍對象被打開它拋出異常:
*** -[ViewControllerB respondsToSelector:]: message sent to deallocated instance 0x12ed7e170
在iOS系統7.0,此按預期工作。
任何想法?
編輯:由於每LeoNatan的要求,這裏的dealloc
法在ViewControllerB
堆棧跟蹤:
您使用ARC嗎?從消息你可以看到你的ViewControlllerB實例已被過度釋放。 – nielsbot
儀器可以幫助您使用分配儀器進行跟蹤。 – nielsbot
爲'ViewControllerB'實現'dealloc'方法並在那裏設置一個斷點。查看誰發佈了您的視圖控制器。在這裏發佈堆棧跟蹤。 –