如何创建iPhone Xcode项目中包含的sqlite数据库的可写副本?

时间:2010-03-17 20:39:53

标签: iphone sqlite

在应用启动时将其复制到您的文档目录。 假设您的sqlite数据库在您的项目中,您可以使用以下代码将数据库复制到您的文档目录。我们还假设您的数据库名为mydb.sqlite。

    //copy the database to documents
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mydb.sqlite"];
if(![fileManager fileExistsAtPath:path])
{
    NSData *data = [NSData dataWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/mydb.sqlite"]];
    [data writeToFile:path atomically:YES];
}

任何人都知道更好的方法。这似乎有用......

1 个答案:

答案 0 :(得分:1)

这看起来对我有用。您也可以使用此NSFileManager方法复制文件:

- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;

我认为使用这种方法可能会更具可读性,但是YMMV。