没有viewWillDisappear发布的UIViewController:被调用?

时间:2014-12-04 10:57:20

标签: ios objective-c uiviewcontroller uidocument

我有UITableViewController的基本实现,提供了UIDocument。对文档的引用保留为视图控制器的实例变量。

viewWillDisappear:中,如果删除了视图控制器(而不是推送到堆栈的子视图控制器),我会关闭文档:

- (void)viewWillDisappear:(BOOL)animated {    
    [super viewWillDisappear:animated];

    if (!self.keepDocumentOpenAfterNavigatingAway) {
        [self.deckDocument closeWithCompletionHandler:^(BOOL success){ 
            // As side effect, this retains 'self' until 
            // the document is closed:
            self.document = nil;
        }];
    }
 }

现在,偶尔我会收到由此引起的崩溃报告(app适用于iOS 7):

objc_msgSend() selector name: _setInConflict:

我怀疑可能在没有调用viewWillDisappear:的情况下取消分配视图控制器。然后,文档将与其一起被释放,而不会被关闭。当冲突来自iCloud时,应用程序崩溃。

当应用程序处于后台并且内存不足时,可能会发生这种情况?是否存在视图控制器在未调用viewWillDisappear:的情况下取消分配的情况?

编辑:为了澄清,这只发生在制作中,我自己无法重现。这就是为什么我假设它可能与低内存/背景情况有关。我在模拟器中发出了低内存警告,没有任何运气。

0 个答案:

没有答案