gpt4 book ai didi

iphone - 没有 Z_METADATA 的 xCode Sqlite 数据库创建

转载 作者:行者123 更新时间:2023-12-03 20:16:40 25 4
gpt4 key购买 nike

当我的 sqlite 数据库是使用核心数据模型创建时,在这一行:

 if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])

我收到错误:

 NSUnderlyingException=I/O SQLite error code:1, 'no such table: Z_METADATA'                

知道如何解决这个问题吗?我已经尝试了好几天了。数据库已创建并复制到我设备上的文档目录中。

注意:

如果我删除应用程序,重建并安装在我的设备上 - .sqlite 文件的日期是两天前,.mom 文件的日期是昨天。如果需要的话,数据库是否不会在编译时重新创建?我的项目中没有 .sqlite 文件,只有 .xcdatamodel。

感谢您的宝贵时间。

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

if (persistentStoreCoordinator_ != nil) {
return persistentStoreCoordinator_;
}
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [documentPaths objectAtIndex:0];

//\MOVES DATABASE TO NEW LOCATION
NSString *storePath = [documentsDirectory stringByAppendingPathComponent:@"myShoeDatabase.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
// If the expected store doesn’t exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"myShoeDatabase" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}

NSURL *storeURL = [NSURL fileURLWithPath:storePath];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

NSError *error = nil;
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {

NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}

return persistentStoreCoordinator_;
}

enter code here

最佳答案

请从基本的完整性检查开始:将数据库带到您的 Mac,使用 sqlite3.exe 打开它,然后查看该表是否存在。

如果是,那么您的程序指向了错误的数据库。如果不是,那么您的表从未创建过(或者数据库已损坏,但这将是令人惊讶的)。

关于iphone - 没有 Z_METADATA 的 xCode Sqlite 数据库创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533874/

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