在Swift中导入和查询SQLite数据库 – iOS
我正在做一个应用程序,使用5个不同的表的大型数据库。 我想将该数据库导入到应用程序包并能够通过表查询。 数据库不会被用户编辑,因此不需要添加和删除logging。
什么是在应用程序中添加数据库的最佳方式?
过程如下:
-
将数据库添加到您的包中。 当您将其拖放到您的项目中时,您可以select将其添加到表示主应用程序的目标中。 或者,查看目标设置,点击“Build Phases”并确认数据库出现在“Copy Bundle Resources”列表中。
-
使用像FMDB这样的框架来简化您的生活。 这是Objective-C编写的,但在Swift中也很棒。 你需要做的是:
-
将FMDB的.h和.m文件复制到您的项目中;
-
当提示创build“桥接头”时,请这样做;
-
将以下行添加到您的桥接头:
#import "FMDB.h"
通过遵循这些步骤,您可以将Objective-C中开发的这个框架应用到您的Swift项目中。
-
-
您现在可以使用FMDB框架编写您的Swift代码。 例如,Swift代码打开数据库,从名为
test
的表中select列x
,y
和z
,如下所示:let path = NSBundle.mainBundle().pathForResource("test", ofType:"sqlite") let database = FMDatabase(path: path) if !database.open() { print("Unable to open database") return } if let rs = database.executeQuery("select * from test", withArgumentsInArray: nil) { while rs.next() { let x = rs.stringForColumn("x") let y = rs.stringForColumn("y") let z = rs.stringForColumn("z") print("x = \(x); y = \(y); z = \(z)") } } else { print("executeQuery failed: \(database.lastErrorMessage())") } database.close()
- 如何为核心数据中的某些字段添加唯一约束
- 使用聚合操作崩溃:Core Data iOS应用程序中的“ALL”
- 有没有人有一个核心数据中的fetched属性的工作示例?
- Swift 2.0核心数据 – TableView不读NSManagedObject
- NSFetchRequest setPropertiesToGroupBy:返回匹配的所有实体吗?
- 保存:在NSManagedObjectContext不工作
- Swift SourceKitService崩溃
- 生成失败,错误命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
- MagicalRecords从JSON / NSDictionary导入数据。 导入关系