我有一个使用核心数据的ipad应用程序,其中数据存储在首次加载时被预加载。今天我需要在数据库中进行一些更改,这样做之后,我加载数据存储区的代码找不到资源。我已将资源复制到项目目录中并验证它确实存在且拼写正确。这是加载DB的代码
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"SpokeCalcMD.sqlite"];
if(![[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]){
//fails at this line
NSURL *preloadURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SpokeCalcMD" ofType:@"sqlite"]];
NSLog(@"PRELOAD URL: %@", preloadURL);
NSError *err = nil;
if(![[NSFileManager defaultManager] copyItemAtURL:preloadURL toURL:storeURL error:&err]){
NSLog(@"FAILED TO COPY DATABASE");
}
}
产生以下内容:
ERROR: 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
我已经采取了所有正常步骤,项目清理,重置模拟器。有什么建议?谢谢!