• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift开发笔记8 - sqlite3数据的使用(xcode 7,ios9)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

由于考虑将来还要开发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, .UserDomainMask, true)  
  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. }  

转载于:https://my.oschina.net/ldm95/blog/680373


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift笔记1发布时间:2022-07-13
下一篇:
[Swift]LeetCode1042.不邻接植花|FlowerPlantingWithNoAdjacent发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap