核心数据 - UIManagedDocument无法打开

时间:2012-11-02 15:47:11

标签: iphone ios uimanageddocument

我正在使用Core Data存储一些与每个用户相关的简单字符串。当应用程序首次启动时,一切似乎都很好。数据库打开,我成功地能够保存和检索数据。

但是,经过一些使用后,有时我使用的UIManagedDocument将在应用启动时无法打开。这是我使用的方法(在app委托中完成):

-(void)initManagedDocument{
@try {
    NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    url = [url URLByAppendingPathComponent:@"DataBase"];

    self.managedDocument = [[UIManagedDocument alloc] initWithFileURL:url];

    if ([[NSFileManager defaultManager] fileExistsAtPath:[url path]]){

        [self.managedDocument openWithCompletionHandler:^(BOOL success){
            if (success) {
                [self documentIsReady];
            }else{
                NSLog(@"Could not open document");
            }

        }];

    }else{

        [self.managedDocument saveToURL:url forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){

            if (success) {
                [self documentIsReady];
            }else{
                NSLog(@"Could not create document");
            }
        }];
    }
}
@catch (NSException *e) {

}

}

此代码从我的应用didFinishLaunchingWithOptions调用。最初调用if语句的saveToURL一半,并返回成功。然后在以下几个调用中调用openWithCompletionHandler:,并成功返回。

但是,在使用应用程序一段时间之后的某个时刻,openWithCompletionHandler:会返回成功= FALSE。我不确定为什么,或UIManagedDocument如何搞砸了。该网址似乎仍然相同,fileExistsAtPath仍在返回YES

有谁知道为什么会这样?或者,如果我有办法调试并找出导致开放失败的实际错误是什么?

0 个答案:

没有答案