草庐IT

iOS:NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error 会导致什么错误:

coder 2023-09-30 原文

我正在使用 CoreData 构建一个 iOS 应用程序。我的一小部分用户(大约 1/1000)报告说应用程序在启动后不久就崩溃了。我怀疑持久存储协调器未能将数据库添加为持久存储。我无法重现测试中的任何错误,也无法从我的用户那里获得任何调试信息。有谁知道此方法产生的任何常见错误?

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
    if (persistentStoreCoordinator_ != nil) return persistentStoreCoordinator_;

    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"databasefile.sqlite"];

    NSError *error = nil;

    persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];

    if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

    return persistentStoreCoordinator_;
}

最佳答案

您可以查看 Core Data Constants Reference但是如果没有任何调试数据,它对你没有多大好处。

我唯一想检查的是:(1) 不小心写入或覆盖代码中其他地方的商店,例如您打算通过复制文件来备份文件,而不是部分覆盖它。 (2) 改变文件的权限。

我在 MacOS 上见过这两种情况,但从未在 iOS 上见过。该商店位于文档文件夹中,并且有一个非常通用的名称,因此可以想象,在 iOS 4.x 下,您可以在其上复制一个文件。

由于您没有对持久性存储做任何花哨的事情,我认为它极不可能是崩溃的原因。如果您使用标准样板代码,那么您正在谈论的是经过高度测试和改进的代码。我会怀疑某种类型的资源,例如在我怀疑商店之前,应用程序包中的图像或音频文件。

关于iOS:NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error 会导致什么错误:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298028/

有关iOS:NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error 会导致什么错误:的更多相关文章

随机推荐