Ios 如何在Xcode中将.sql文件添加到sqlite数据库

Ios 如何在Xcode中将.sql文件添加到sqlite数据库,ios,xcode,sqlite,xcode4.2,Ios,Xcode,Sqlite,Xcode4.2,我正在编写一个离线的iPhone应用程序,在这个程序中,我需要从一个由几个表组成的数据库中读取和显示数据。表中有超过100k个条目,因此几乎不可能单独输入所有条目。我已经下载了整个数据库的.sql文件。现在,我如何将db导入sqlite/Xcode,以便能够轻松地开始访问其中的数据?? 编辑:我已经看到,在使用数据库时,使用的文件扩展名是.db文件。我是否可以将.sql文件转换为.db文件。如果我能做到这一点,我可以通过将.db文件放在项目目录中来访问它吗?如果您已经创建了.sqlite文件并在

我正在编写一个离线的iPhone应用程序,在这个程序中,我需要从一个由几个表组成的数据库中读取和显示数据。表中有超过100k个条目,因此几乎不可能单独输入所有条目。我已经下载了整个数据库的
.sql
文件。现在,我如何将db导入sqlite/Xcode,以便能够轻松地开始访问其中的数据??
编辑:我已经看到,在使用数据库时,使用的文件扩展名是
.db
文件。我是否可以将
.sql
文件转换为
.db
文件。如果我能做到这一点,我可以通过将
.db
文件放在项目目录中来访问它吗?

如果您已经创建了.sqlite文件并在其中包含了表,然后将.sqlite文件添加到xcode中,就像从桌面拖动到捆绑包中一样(参考资料)。然后使用NSFileManager访问sqlite文件。您需要为createdatabase编写方法并初始化数据库,而且您还可以在documents文件夹/simulator文件夹中看到sqlite文件

- (void)createEditableCopyOfDatabaseIfNeeded {
    NSLog(@"Checking for database file");
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    NSString *dbPath = [self getDBPath];
    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"ihaikudb.sql"];
    BOOL success = [fileManager fileExistsAtPath:dbPath]; 

    NSLog(@"If needed, bundled default DB is at: %@",defaultDBPath);

    if(!success) {
        NSLog(@"Database didn't exist... Copying default from resource dir");
        success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error];

        if (!success) 
            NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
    } else {
        NSLog(@"Database must have existed at the following path: %@", dbPath);
    }
    NSLog(@"Done checking for db file");
}

我们用来从
.db
文件中读取数据库,对吗?相反,我有一个
.sql
文件,而不是
.sqlite
没问题,您只需将文件拖放到您的文件夹中并开始工作。文件扩展名的类型无关紧要。如果您有副本,则拖放到您的工作文件夹中称为沙箱。我的疑问是,
.sql
文件实际上具有创建数据库和表以及将值插入表的命令。如何使用sql命令访问此类文件中的值?如何获取[self-getDBPath]?“[self-getDBPath]”显示错误。如何克服它?