代码之家  ›  专栏  ›  技术社区  ›  Iggy

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

  •  0
  • Iggy  · 技术社区  · 14 年前

    当应用程序启动时,将其复制到您的文档目录。 假设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 回复  |  直到 14 年前
        1
  •  1
  •   Shaggy Frog    14 年前

    在我看来这是正确的。你也可以用这个复制文件 NSFileManager 方法代替:

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

    我认为使用这种方法可能更容易阅读,但是ymmv。