sqlite3数据的使用(xcode 7,ios9)

来源:互联网 发布:而知也无涯作者是谁 编辑:程序博客网 时间:2024/05/22 05:17

由于考虑将来还要开发Android版本app,为了移植方便,所以使用了sqlite3来做数据持久化,到时候把sql语句拷过去还能用大笑

1、 首先用xcode载入sqlite3类库

选择工程的TARGETS-build phases-link binary with libraries,点击“+”按钮,选择类库,点击“add”添加:



(输入sql查找:)


2、 sqlite3是 c语言写的类库,所以还要引用他的头文件。在工程里新建一个文件,类型为“.h”文件,命名为:ProjectSecretary2-Bridging-Header.h ,这个文件就是桥接文件,然后在这个文件里加一行代码:

#import "sqlite3.h"


3、 然后告诉xcode编译时要引入这个类库头文件

      在targets->build settings ->Object-C Bridging Header 输入头文件名即可,要注意的是

  • 找swift compiler时,要选择“ALL”和“Combined”,否则不好找。
  • 输入文件名时可能要加上级文件路径,自己试试好了吐舌头



4、 现在可以在代码里打开数据库了:

[objc] view plain copy
  1. let DBFILE_NAME = "psList.sqlite3"  
  2. var db:COpaquePointer = nil  
  3. //获取sqlite3数据库文件位置  
  4. func applicationDocumentsDirectoryFile() ->String {  
  5.     let  documentDirectory: NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory.UserDomainMasktrue)  
  6.     let path = documentDirectory[0].stringByAppendingPathComponent(DBFILE_NAME) as String  
  7.     NSLog("path : %@", path)  
  8.     return path  
  9. }  
  10.   
  11. //创建一个系统配置表  
  12. func getSysConfig()->Dictionary<String,String>{  
  13.     var theResult:Dictionary<String,String>=Dictionary<String,String>()  
  14.     let writableDBPath = self.applicationDocumentsDirectoryFile()  
  15.     let cpath = writableDBPath.cStringUsingEncoding(NSUTF8StringEncoding)  
  16.       
  17.     if sqlite3_open(cpath!, &db) != SQLITE_OK {  
  18.         sqlite3_close(db)  
  19.         assert(false"数据库打开失败。")  
  20.     } else {  
  21.         //创建一个系统参数配置表,有3个字段,分别是 名字、值和备注  
  22.         let sql = "CREATE TABLE IF NOT EXISTS  SysConfig (name TEXT PRIMARY KEY, value TEXT , comment TEXT)"  
  23.         let cSql = sql.cStringUsingEncoding(NSUTF8StringEncoding)  
  24.           
  25.         if (sqlite3_exec(db,cSql!, nil, nil, nil) != SQLITE_OK) {  
  26.             sqlite3_close(db)  
  27.             assert(false"建表失败。")  
  28.         }  
  29.         sqlite3_close(db)  
  30.     }  
  31.   
  32.     return theResult  
  33. }  

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 酷我音乐歌曲下载收费怎么办 网易云下载超过每日上限怎么办 全民k歌领不了花怎么办 安卓全民k歌延迟怎么办 全民k歌唱歌延迟怎么办 全民k歌耳机延迟怎么办 word文档打开是乱码怎么办 全民k歌不能录音怎么办 全民k歌登录不上怎么办 平果手机迅雷闪退怎么办 电脑打开央视影音死机怎么办 先锋影音二级网页打不开怎么办 手机qq音乐登录失效怎么办 酷狗账号忘记了怎么办 手机qq音乐听不了歌怎么办 第一试用网密码忘了怎么办 玩h1z1画面卡顿怎么办 uu跑腿抢不到单怎么办 比特币加密忘了怎么办 路虎发现cd卡死怎么办 苹果手机帐号被锁定怎么办 苹果手机帐号锁定了怎么办 微博帐号被锁定怎么办 微博显示帐号被锁定怎么办 uc屏蔽了一个网站怎么办 uu跑腿送货遇到不方便收货怎么办 雷神加速器忘记暂停怎么办 obs直播开摄像头吃鸡掉帧怎么办 陌陌收到的礼物怎么办 吃了油腻的东西恶心怎么办 主播工资不发怎么办 主播工资被欠怎么办 直播平台不发工资坑主播怎么办 主播公司不发工资怎么办 梦幻月卡用完了怎么办 网易星球实名认证通过不了怎么办 认证过荔枝主播怎么办 苹果手机相机不对焦怎么办 苹果手机摄像头不能对焦了怎么办 闪电邮里面邮件太多怎么办 苹果手机和助理打不开怎么办