我想將我的數據庫從NSBundle複製到文檔目錄。無法將文件從NSBundle複製到文檔目錄
這是複製文件的代碼:
- (NSString *) getDBPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingString:@"Mydata.sqlite"];
}
- (void) copyDatabaseIfNeeded
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *dbPath = [self getDBPath];
BOOL success = [fileManager fileExistsAtPath:dbPath];
if(!success) {
NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Mydata.sqlite"];
success = [fileManager copyItemAtPath:defaultPath toPath:dbPath error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable file with message '%@'.", [error localizedDescription]);
}
}
但爲什麼當我在我的iPad上運行該應用程序,它崩潰?
什麼是錯誤信息? – Nekto
我發現它爲什麼崩潰! 問題出在這裏:return [documentsDir stringByAppendingString:@「Mydata.sqlite」]; 應該改用stringByAppendingPathComponent。 – Lloydworth