我想用一個小的sqlite3數據庫初始化我的應用程序。我試圖把它放在Documents目錄中,但有時它會將它複製爲零大小,有時它根本不會複製它。將文件添加到文檔目錄(或其他地方)?
sholud我如何用一個充滿信息的數據庫初始化我的應用程序?
Thankyou
我想用一個小的sqlite3數據庫初始化我的應用程序。我試圖把它放在Documents目錄中,但有時它會將它複製爲零大小,有時它根本不會複製它。將文件添加到文檔目錄(或其他地方)?
sholud我如何用一個充滿信息的數據庫初始化我的應用程序?
Thankyou
如何將它與您的應用程序一起復制?
如果運輸您的使用DB的應用程序包內的應用程序(如資源),你應該從資源複製到文件夾,如果它不存在,並且有與它的工作:
NSFileManager *fileManager = [[NSFileManager defaultManager] autorelease];
BOOL exists = [fileManager fileExistsAtPath:databasePath];
if (exists) {
return;
}
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
謝謝弗拉基米爾,
這很有幫助。我做了一些改變,這裏最後的結果很好用:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = @"personalLMS.s3db";
NSFileManager *fileManager = [[NSFileManager defaultManager] autorelease];
NSString * databasePathFromApp = [[NSBundle mainBundle] pathForResource:@"personalLMS" ofType:@"s3db"];
[fileManager copyItemAtPath:databasePathFromApp toPath:[documentsDirectory stringByAppendingPathComponent:databasePath] error:nil];