Swift中的iOS简单SQLite Select语句

Swift中的iOS简单SQLite Select语句,ios,sqlite,select,swift,Ios,Sqlite,Select,Swift,我计划更新当前使用SQLITE数据库的旧应用程序 我的新应用程序是用iOS8/Swift编写的 有没有一种简单的方法可以在SQLite数据库文件上运行select语句并遍历结果?在这样做的同时,我将把信息传输到一个新的核心数据数据库中 例如:从myTable中选择id、someDate、someString、someInt 在我执行了这个select语句之后,我将永远不会对SQLite做任何其他事情,因此我不会考虑向应用程序添加任何主要内容。只是一个非常快速的选择,以获取种子数据 希望这是有意义

我计划更新当前使用SQLITE数据库的旧应用程序

我的新应用程序是用iOS8/Swift编写的

有没有一种简单的方法可以在SQLite数据库文件上运行select语句并遍历结果?在这样做的同时,我将把信息传输到一个新的核心数据数据库中

例如:从myTable中选择id、someDate、someString、someInt

在我执行了这个select语句之后,我将永远不会对SQLite做任何其他事情,因此我不会考虑向应用程序添加任何主要内容。只是一个非常快速的选择,以获取种子数据

希望这是有意义的。我只是在尝试用Swift做这件事时感到困惑

======更新======

我要用SQLite.swift。易于安装和运行

以下操作正常,但我是否正确地检查了值是否为零?这是最好的检查方法吗

let stmt = db.prepare("SELECT anID, aString FROM someTable")
for row in stmt {

    if var myID:Int = row[0] as Int? {  // do something here if exists  }
    if var myString:String = row[1] as String? {  // do something here if exists  }

}

FMDB
是一个了不起的第三方库,它与
sqlite
接口


可以找到详细的
swift
FMDB
教程

FMDB
是一个与
sqlite
接口的令人惊叹的第三方库

详细的
swift
FMDB
教程可以找到

总是有的,但它肯定生活在客观的时代。我写信是为了更好地使用Swift编程语言

您上面的示例非常简单,如下所示:

let stmt = db.prepare("SELECT id, someDate, someString, someInt FROM myTable")
for row in stmt {
    // [Optional(1), Optional("2014-10-30"), Optional("Hello!"), Optional(5)]
}
总是有,但它肯定生活在客观C时代。我写信是为了更好地使用Swift编程语言

您上面的示例非常简单,如下所示:

let stmt = db.prepare("SELECT id, someDate, someString, someInt FROM myTable")
for row in stmt {
    // [Optional(1), Optional("2014-10-30"), Optional("Hello!"), Optional(5)]
}

效果很好。非常感谢。我已经更新了我的原始问题,以便进一步澄清检查值是否为零的最佳方法。默认情况下,无法保证在编译时列值永远不会为
NULL
,因此可选的方法是使用
if
let
是标准的。效果很好。非常感谢。我已经更新了我的原始问题,以便进一步澄清检查值是否为零的最佳方法。默认情况下,无法保证在编译时列值永远不会为
NULL
,因此可选项是可行的,如果
let
是标准,则使用
。只需声明一次类型就可以简化一点,我相信您打算使用
let
来展开,例如。,
如果让myID=row[0]作为Int?{/*…*/}
。(另外,第二行应该是
行[1]
)谢谢,这很有意义。[2]是一个复制粘贴错误。更新。只需声明一次类型,您就可以简化一点,我相信您的意思是使用
let
来展开,例如,如果让myID=row[0]作为Int?{/*…*/}
。(另外,第二行应该是
行[1]
)谢谢,这很有意义。[2]是一个复制粘贴错误。更新。