一个稍微有点功能的APP都需要一个数据库来支撑。那么我们的Swift2.0怎么去操作Sqlite数据库呢?
这个Swift说起来是欢喜忧愁各占一半。为啥这么说呢?这得从它的语言说起,Swift才出来没多久,所以很多苹果很多功能都没有封装。虽然底层是支持的。比如说我们现在要用的SQLite,有3.0的支持库。但是人家是用C语言写的,你要用就自己封装和桥接。还好苹果开发的人比较多,已经有人封装好了。我们拿来用就行了。这里我简单测试下是没问题的。首先下载三个Swift文件和一个桥接的头文件。
头文件:
#import "sqlite3.h"
#import
编译需要的。然后位置切记了。要放在
工程的根目录,不然会提示找到不头文件(GITHUB上面貌似没有提到这点)。
第二步桥接在设置里面。看下图:

第三步添SQLite3.0的库文件,如下图:

OKAY,到了这里基本上就快完成喽!
第四步,把下载3个Swift文件添加到工程中,代码有点小多,我就不上传了。直接下载吧。
SQLiteDB然后就可以正常调用啦。我写了一个简单的类来操作。源码:
//
// Tools.swift
// Textile
//
// Created by leehom on 16/3/9.
// Copyright © 2016年 fenjin.textile. All rights reserved.
//
import Foundation
let toolInstance = Tools()
class Tools: NSObject {
//单例模式变量
//class var sharedInstance:Tools{
// return toolInstance
//}
//单例模式方法
class func sharedInstance()->Tools! {
return toolInstance
}
var db:SQLiteDB!
override init(){
db = SQLiteDB.sharedInstance()
db.execute("create table if not exists m_user(uid integer primary key,uname varchar(20),mobile varchar(20))")
}
internal func testUser(){
//self.insertUser()
self.selectUser()
}
internal func selectUser(){
//读取数据
let data = db.query("select * from m_user")
if data.count > 0 {
//获取最后一行数据显示
let user = data[data.count - 1]
let name = user["uname"] as! String
let mobile = user["mobile"] as! String
NSLog("%@-%@", name,mobile)
}
}
internal func insertUser(){
//插入一条数据
let name = "ithtw"
let mobile = "18888888888"
//插入数据库,这里用到了esc字符编码函数,其实是调用bridge.m实现的
let sql = "insert into m_user(uname,mobile) values('\(name)','\(mobile)')"
print("sql: \(sql)")
//通过封装的方法执行sql
let result = db.execute(sql)
print(result)
}
}
刚学Swift不久,有错的地方请见谅!
本文链接:https://it72.com/7933.htm