Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift Sqlite3_列_文本()_Ios_Database_Swift_Sqlite - Fatal编程技术网

Ios Swift Sqlite3_列_文本()

Ios Swift Sqlite3_列_文本(),ios,database,swift,sqlite,Ios,Database,Swift,Sqlite,在我的表aaa中,有一个名为“a”的字段,其值为1,2,3,如下所示: 我试图将值放入数组中或只是打印它们,但当我打印(打印(res))时,值只是“nil” 我怎样才能得到真正的价值 编辑:值(1,2,3)是字符串而不是插入器,这就是为什么我选择sqlite3\u column\u text()而不是sqlite3\u column\u int()我认为a的数据类型是int,您将其作为文本sqlite3\u column\u text获取 试试这个:sqlite3\u column\u int

在我的表aaa中,有一个名为“a”的字段,其值为1,2,3,如下所示:

我试图将值放入数组中或只是打印它们,但当我打印
(打印(res))
时,值只是“
nil

我怎样才能得到真正的价值


编辑:值(1,2,3)是字符串而不是插入器,这就是为什么我选择sqlite3\u column\u text()而不是sqlite3\u column\u int()

我认为
a
的数据类型是
int
,您将其作为文本
sqlite3\u column\u text
获取

试试这个:
sqlite3\u column\u int

如果不起作用,请尝试以下组合:

  • 第0行的Int:
    sqlite3\u列\u Int(q,0)

  • 行为0的文本:
    sqlite3\u列\u文本(q,0)

已解决:

问题是将函数sqlite3_column_text()转换为字符串,swift3中的解决方案是:

if sqlite3_prepare_v2(db, "select a from aaa", -1, &q,nil) == SQLITE_OK {
    while sqlite3_step(q) == SQLITE_ROW {
        let res = sqlite3_column_text(q, 1)
        print(res)
    }
} else {
    print("NOT WORKING")
    NSLog("%s", sqlite3_errmsg(db))
}

比较sqlite3\u column\u text的结果如何转换为Swift字符串。第一列不应该使用索引0而不是1吗?请尝试使用索引=0而不是1,或者直接使用列的名称:
a
我尝试使用索引=0,但没有成功。看起来真正的问题是将sqlite3_column_text转换为swift string,正如@Martin R所说的感谢您的评论,我以前没有写过,但是值是字符串而不是intager(查看编辑的帖子)。试试这个:sqlite3_column_text(q,0),所以它是0索引并转换为字符串!!
let string = String(cString: sqlite3_column_text(statement, 0))