我正在尝试使用以下代码将sqlite DB添加到应用程序中:CoreData: Preload Data in Your iOS App
按照教程我遇到了一个问题:
[NSFileManager copyItemAtPath:toPath:error:]: source path is nil
我使用以下代码:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (__persistentStoreCoordinator != nil) {
return __persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Peter_R0_1.sqlite"];
if(![[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]) {
NSString *sqlitePath = [[NSBundle mainBundle] pathForResource:@"Peter_R0_1" ofType:@"sqlite" inDirectory:nil];
NSError *anyError = nil;
BOOL success = [[NSFileManager defaultManager] copyItemAtPath:sqlitePath toPath:[storeURL path] error:&anyError];
}
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;
}
我非常感谢这个问题的一些帮助
答案 0 :(得分:16)
嗯,这个错误意味着NSString *sqlitePath
是== nil
,所以99%的可能性是以下一个或多个:
Peter_R0_1.sqlite
文件的文件检查器视图下的“目标成员资格”验证