核心数据托管对象无法保存上下文(错误134030)

阿波斯托洛斯·阿波斯托利迪斯

尝试在持久性存储协调器中使用以下配置保存托管对象时:

    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"ParallelPhotosModel.sqlite"];
NSError *error = nil;
NSString *failureReason = @"There was an error creating or loading the application's saved data.";
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {

我收到以下错误:

未解决的错误Error Domain = NSCocoaErrorDomain代码= 134030“保存时发生错误。” UserInfo = {NSFilePath = / var / mobile / Containers / Data / Application / 9FCED2FF-F976-4780-8192-208519C8CD11 / Documents / ParallelPhotosModel.sqlite,NSAffectedStoresErrorKey =(“(URL:file:/// var / mobile / Containers / “ Data / Application / 9FCED2FF-F976-4780-8192-208519C8CD11 / Documents / ParallelPhotosModel.sqlite)”),NSUnderlyingError = 0x127335c50 {Error Domain = NSCocoaErrorDomain Code = 4“该文件不存在。” UserInfo = {NSUnderlyingError = 0x12732a670 {Error Domain = NSPOSIXErrorDomain代码= 2“没有这样的文件或目录” UserInfo = {NSFilePath = / var / mobile / Containers / Data / Application / 9FCED2FF-F976-4780-8192-208519C8CD11 / Documents / ParallelPhotosModel .sqlite}}}}},{NSAffectedStoresErrorKey =(“(URL:文件:

这里的根本问题是什么,我该如何避免呢?我曾在某处看到过尝试在App捆绑中保存时弹出类似错误的消息,但我使用的storeURL是从教程(即文档目录)中获取的。

更新:

更具体地说,我将NSManagedObjectContext准确地粘贴到允许我保存的位置,但是它不能:

    NSManagedObjectContext *context = [appDelegate managedObjectContext];

    for (DBMetadata *file in metadataContents) {
        NSString *photo_info = [file photo_info];
        if (photo_info != nil) {
            NSNumber *day_taken = [self extractDayFromString: photo_info];
            NSNumber *month_taken = [self extractMonthFromString: photo_info];
            NSNumber *year_taken = [self extractYearFromString: photo_info];
            NSString *db_path = [file path];
            NSManagedObject *parallelPhoto = [NSEntityDescription
                                              insertNewObjectForEntityForName:@"ParallelPhotos"
                                              inManagedObjectContext:context];
            [parallelPhoto setValue:db_path forKey:@"pathInDropbox"];
            [parallelPhoto setValue:day_taken forKey:@"day"];
            [parallelPhoto setValue:month_taken forKey:@"month"];
            [parallelPhoto setValue:year_taken forKey:@"year"];
            NSLog(@"ADDED TO DB: %@ %@ %@", day_taken, month_taken, year_taken);
        }
    }
NSError *error = nil;
if(![context save:&error]){
    NSLog(@"error: %@", error);
乔迪·哈金斯(Jody Hagins)

在将URL添加到持久性存储之前,您可能需要确保目录存在。

[[NSFileManager defaultManager] createDirectoryAtURL:[storeURL URLByDeletingLastPathComponent]
                         withIntermediateDirectories:YES
                                          attributes:nil
                                               error:NULL];

实际上,您可能需要将此代码添加到您的applicationDocumentsDirectory方法中,然后再返回值。如果这样做,请确保您正确处理了潜在的错误。

编辑

在行上放置一个断点

NSManagedObjectContext *context = [appDelegate managedObjectContext];

并逐步解决。检查MOC和PSC的属性。您还应该检查持久性存储所拥有的URL。然后,您应该检查文件系统以查看该目录中的内容。

如果这些都不起作用,请在最初创建MOC / PSC的位置放置一个断点,并确保正确创建了该断点。检查文件系统以确保存储在那里。

然后,在文件和/或文件系统上安装观察程序,以便在文件和/或文件系统发生更改时得到通知,并查看是否可以捕获正在删除或移动的文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将多个托管对象上下文与核心数据库一起使用

来自分类Dev

核心数据:使用UITabBarController从AppDelegate为应用程序设置托管对象上下文

来自分类Dev

即使保存了核心数据上下文,数据也无法持久保存

来自分类Dev

核心数据子上下文

来自分类Dev

稍后保存上下文-将指针保存到上下文吗?核心数据

来自分类Dev

核心数据:子上下文是否曾经获得新插入对象的永久对象ID?

来自分类Dev

保存上下文时核心数据编码崩溃

来自分类Dev

核心数据NSBatchDeleteRequest似乎将对象留在上下文中

来自分类Dev

核心数据嵌套管理对象上下文和频繁的死锁/冻结

来自分类Dev

在核心数据中获取NSManagedObject上下文时找不到objectID错误

来自分类Dev

核心数据背景上下文最佳实践

来自分类Dev

核心数据错误代码= 134030“保存时发生错误”,没有userInfo

来自分类Dev

核心数据:父上下文更改未合并到子上下文中

来自分类Dev

核心数据:我应该从父上下文中获取对象还是子上下文具有与父对象相同的对象?

来自分类Dev

核心数据:非法尝试在不同上下文中的对象之间建立关系“状态媒体”

来自分类Dev

无法在iOS上创建托管对象上下文

来自分类Dev

当后台有数据更新时,如何管理核心数据上下文?

来自分类Dev

如何在Castle Windsor中注册Ef核心数据库上下文?

来自分类Dev

从私有核心数据子上下文填充 UITableView

来自分类Dev

核心数据多线程和嵌套上下文

来自分类Dev

与主应用程序共享核心数据上下文的App Extension编程指南

来自分类Dev

在核心数据中存储上下文属性的最佳方法?

来自分类Dev

核心数据私有上下文 performAndWait 导致调试崩溃

来自分类Dev

子上下文新的托管对象

来自分类Dev

如何在Core Data中的后台线程中保存到托管对象上下文

来自分类Dev

使用arrayController导致“没有托管对象上下文无法执行操作”

来自分类Dev

Swift +核心数据:在swift中生成其子类后无法添加托管对象

来自分类Dev

核心数据无法正确保存

来自分类Dev

ASP.NET Core 2.1无法从托管服务访问数据库上下文

Related 相关文章

  1. 1

    将多个托管对象上下文与核心数据库一起使用

  2. 2

    核心数据:使用UITabBarController从AppDelegate为应用程序设置托管对象上下文

  3. 3

    即使保存了核心数据上下文,数据也无法持久保存

  4. 4

    核心数据子上下文

  5. 5

    稍后保存上下文-将指针保存到上下文吗?核心数据

  6. 6

    核心数据:子上下文是否曾经获得新插入对象的永久对象ID?

  7. 7

    保存上下文时核心数据编码崩溃

  8. 8

    核心数据NSBatchDeleteRequest似乎将对象留在上下文中

  9. 9

    核心数据嵌套管理对象上下文和频繁的死锁/冻结

  10. 10

    在核心数据中获取NSManagedObject上下文时找不到objectID错误

  11. 11

    核心数据背景上下文最佳实践

  12. 12

    核心数据错误代码= 134030“保存时发生错误”,没有userInfo

  13. 13

    核心数据:父上下文更改未合并到子上下文中

  14. 14

    核心数据:我应该从父上下文中获取对象还是子上下文具有与父对象相同的对象?

  15. 15

    核心数据:非法尝试在不同上下文中的对象之间建立关系“状态媒体”

  16. 16

    无法在iOS上创建托管对象上下文

  17. 17

    当后台有数据更新时,如何管理核心数据上下文?

  18. 18

    如何在Castle Windsor中注册Ef核心数据库上下文?

  19. 19

    从私有核心数据子上下文填充 UITableView

  20. 20

    核心数据多线程和嵌套上下文

  21. 21

    与主应用程序共享核心数据上下文的App Extension编程指南

  22. 22

    在核心数据中存储上下文属性的最佳方法?

  23. 23

    核心数据私有上下文 performAndWait 导致调试崩溃

  24. 24

    子上下文新的托管对象

  25. 25

    如何在Core Data中的后台线程中保存到托管对象上下文

  26. 26

    使用arrayController导致“没有托管对象上下文无法执行操作”

  27. 27

    Swift +核心数据:在swift中生成其子类后无法添加托管对象

  28. 28

    核心数据无法正确保存

  29. 29

    ASP.NET Core 2.1无法从托管服务访问数据库上下文

热门标签

归档