2

我已阅读文档并按照本文中的步骤操作-

运行我的代码时仍然出现错误,如下所示

-(void)loadPhotoGallery:(NSURL *)path
{
    if (self.defaultPhotoLibrary != nil) return;
    // this should handle auto migrations - according to documentation


    NSURL * url;

    if (path == nil)
    {
        url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
        url = [url URLByAppendingPathComponent:@"defaultPhotoDatabase"];
    } else {
        url = path;
    }
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:

                             [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,

                             [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
    NSString *path1 = [[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"momd"];
    NSURL *momURL = [NSURL fileURLWithPath:path1];
    NSManagedObjectModel *managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];



    NSPersistentStoreCoordinator *persistentStoreCoordinator =  [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];
    NSError *error;
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:options error:&error]) {
        // Printing this error
        NSLog(@"Problem with PersistentStoreCoordinator: %@",error);
    }

    UIManagedDocument *lib = [[UIManagedDocument alloc] initWithFileURL:url];
    if (![[NSFileManager defaultManager] fileExistsAtPath:[lib.fileURL path]]) {
        [lib saveToURL:lib.fileURL
      forSaveOperation:UIDocumentSaveForCreating
     completionHandler:^(BOOL success) {
         if (success)
         {
// Great
} else {
//bad
}
}
else if (lib.documentState == UIDocumentStateClosed) {
        [lib openWithCompletionHandler:^(BOOL success) {
            if (success) // here is the failure when migrating - because the DB file exists
            {
//great!
} else {
//bad - getting into this code
}
}

我得到的错误:

PersistentStoreCoordinator 的问题:错误域 = NSCocoaErrorDomain 代码 = 256“操作无法完成。(可可错误 256。)”用户信息 = 0xe09a880 {NSUnderlyingException = 无法打开数据库文件,NSSQLiteErrorDomain = 14}

但是数据库文件确实存在(在“elseif”中) - 所以不清楚问题是什么?

4

0 回答 0