gpt4 book ai didi

ios - 核心数据中的错误消息

转载 作者:行者123 更新时间:2023-11-29 10:56:47 25 4
gpt4 key购买 nike

我一直在我的应用程序中使用 Core Data,突然我收到如下错误消息:

尝试在路径 file://localhost/var/mobile/Applications/xxx-xxx-xxx../.app/MyModel.sqlite 读/写中添加只读文件。而是将其添加为只读。这在未来将是一个严重的错误;您必须指定 NSReadOnlyPersistentStoreOption。

错误发生在下面的方法中:

-(NSPersistentStoreCoordinator*)persistentStoreCoordinator{

if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}

NSString* path= [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyModel.sqlite"];
NSURL* storeURL = [[NSURL alloc] initFileURLWithPath:path];

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;
}

在今天之前,我从来没有见过这个错误信息。谁能告诉我哪里出了问题?感谢您的宝贵时间。

最佳答案

答案在于

[[NSBundle mainBundle] resourcePath]

mainBundle resourcePath 是加载应用程序 IPA 文件中包含的数据的位置,它永远是只读的,您需要在应用程序文档文件夹中创建 sqllite 文件

可以用

代替
NSURL *storeURL = [[self applicationPrivateDocumentFolderURL] URLByAppendingPathComponent:@"MyModel.sqlite"];


- (NSURL *)applicationPrivateDocumentFolderURL
{
if (!m_privateDocumentFolderURL) {
NSString *applicationPrivateDocumentFolderPath = [[NSFileManager defaultManager] applicationSupportDirectory];
m_privateDocumentFolderURL = [[NSURL alloc] initFileURLWithPath:applicationPrivateDocumentFolderPath];
}

return [[m_privateDocumentFolderURL copy] autorelease];
}

关于ios - 核心数据中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com