0

所以我是 XCode 的新手,我想使用 Sqlite3 将我的数据存储在数据库中。我有一个类用户,我有这个方法。

-(void)createOrOpenDB
{
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docPath = [path objectAtIndex:0];
    dbPathString = [docPath stringByAppendingPathComponent:@"users.db"];
    char *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if([fileManager fileExistsAtPath:dbPathString] == NO)
    {
        const char *dbPath = [dbPathString UTF8String];
        if(sqlite3_open(dbPath, &userDB)==SQLITE_OK)
        {
            const char *sql_stmt = "CREATE TABLE IF NOT EXISTS USERS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, PASSWORD TEXT, CONFIRM TEXT, EMAIL TEXT)";
            sqlite3_exec(userDB, sql_stmt, NULL, NULL, &error);
            sqlite3_close(userDB);
        }
    }
}

但我还有另一个类,我想创建另一个表。但它不起作用,因为这种方法说数据库已经存在。

我怎样才能在另一个类中打开该数据库来创建一个新表?

4

1 回答 1

0

假设您继续使用 sqlite,最好使用一个方法来打开或创建数据库。如果创建了数据库,则整个模式都会立即创建。现在您的所有类都可以调用单个方法。

这将使现在和以后的事情变得更加容易。有时,您的计划可能会改变。也可以编写这种方法来根据需要更新模式。

于 2012-10-21T16:28:05.360 回答