1

我正在使用 QR 码并在扫描后获取用户名、事件标题和票证代码。我需要在三个不同的字符串中分别获取这些值,以便我可以将它们保存在 sqlite 中。我只想知道如何进行这种分离,节省是我能做的。提前致谢。

4

2 回答 2

1
- (void)saveData {
    sqlite3_stmt    *statement;

    const char *dbpath = [databasePath UTF8String];

    if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
    {
        NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name, address, phone) VALUES (\"%@\", \"%@\", \"%@\")", @"NameString", @"Address", @"Phone"];

        const char *insert_stmt = [insertSQL UTF8String];

        sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
        if (sqlite3_step(statement) == SQLITE_DONE)
        {
            NSLog(@"Success");
        } else {
            NSLog(@"Failed");
        }
        sqlite3_finalize(statement);
        sqlite3_close(contactDB);
    }
}

注意 如果您发布您获得的字符串类型,我将添加您必须如何拆分它。以下是如何拆分的示例

NSArray arrResult = [str componentsSeparatedByString:@"-"]; 

或按字符集

NSString* str = @"A string with newlines in it";

NSArray *arrTemp =  [str componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
于 2012-10-08T06:24:26.470 回答
0

您可以使用componentsSeparatedByString

NSString *str = @"userName:Password:etc";
NSArray* parts1 = [str componentsSeparatedByString:@":"];     
NSLog(@" [[parts1 objectAtIndex:0] integerValue]=%d", [[parts1 objectAtIndex:0] integerValue]);

//the output will be: username for index 0, and so on
于 2012-10-08T06:16:54.910 回答