gpt4 book ai didi

iPhone 应用程序数据库

转载 作者:行者123 更新时间:2023-12-03 21:20:53 26 4
gpt4 key购买 nike

因此,我可以在 iPhone/iPod 应用程序 (Objective-C) 中访问只读 SQLite 数据库,但我正在编写一个新应用程序,该应用程序将具有可写数据库。显然,r/w 文件必须位于用户可写目录中。我的问题是,我应该随应用程序发送一个空数据库并将其复制到读/写位置,还是在应用程序第一次启动时动态创建读/写数据库?

最佳答案

您可以执行任一操作,但创建一个空数据库,将其放入包中,然后在 AppDelegate.m 文件中执行此操作会更容易(并且更不容易出错):

- (void)prepareDatabase
{
//add Database Versioning check to see if the resources database is newer
// generally as simple as naming your database with a version on the end

NSFileManager *filemanager = [NSFileManager defaultManager];
NSString *databasePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"/YOURDATABASE.s3db"];
if(![filemanager fileExistsAtPath:databasePath]) {
//Database doesn't exist yet, so we copy it from our resources
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/YOURDATABASE.s3db"];
if([filemanager copyItemAtPath:defaultDBPath toPath:databasePath error:nil]) {
NSLog(@"Database Copied from resources");
} else {
NSLog(@"Database copy FAILED from %@ to %@",defaultDBPath,databasePath);
}
}
}

然后在您的 applicationDidFinishLaunching: 方法中调用:

[self prepareDatabase];

关于iPhone 应用程序数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4994652/

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