推送视图控制器会崩溃应用程序

时间:2014-04-19 22:32:31

标签: ios uinavigationcontroller automatic-ref-counting

这里是场景:我正在使用MWPhotoBrowser。我可以推得一次。第二次我试图推动它的应用程序崩溃没有任何帮助。这是一个ARC项目,这个完全相同的代码在以前版本的应用程序中运行良好。我傻眼了。

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    selectedIndexPath = indexPath;
    if(browser == nil)
    {
        browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
    }

    // Set options
    browser.displayActionButton = YES; // Show action button to allow sharing, copying, etc (defaults to YES)
    browser.displayNavArrows = YES; // Whether to display left and right nav arrows on toolbar (defaults to NO)
    browser.zoomPhotosToFill = NO; // Images that almost fill the screen will be initially zoomed to fill (defaults to YES)
    [browser setCurrentPhotoIndex:indexPath.row]; // Example: allows second image to be presented first
    //browser.wantsFullScreenLayout = YES; // iOS 5 & 6 only: Decide if you want the photo browser full screen, i.e. whether the status bar is affected (defaults to YES)
    // Present
    [self.navigationController pushViewController:browser animated:YES];
}

点击一个单元格,MWPhotoBrowser打开正常。返回,再次点击一个单元格,应用程序只与调试器崩溃,但没有调用堆栈或错误原因:

(lldb):

浏览器是一个强大的成员变量。它不会过早解除分配。我还可以保证它在方法的最后一行完全崩溃。

有人可以赐教我这个吗?如果应用程序至少给了我崩溃的原因而不仅仅是将调试器扔到我脸上,我就解决了。

1 个答案:

答案 0 :(得分:1)

我已广泛使用MWPhotoBrowser并遇到过同样的问题。我解决它的方法是检查MWPhoto对象,看看它们是否确实已正确设置。我意识到我没有创造它们中的一些,因此崩溃了。我会检查你存放MWPhotos的地方,并确保它们都已设置好。希望这有帮助!