由于考虑将来还要开发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 plaincopy
  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. func getSysConfig()->Dictionary<String,String>{
  12. var theResult:Dictionary<String,String>=Dictionary<String,String>()
  13. let writableDBPath = self.applicationDocumentsDirectoryFile()
  14. let cpath = writableDBPath.cStringUsingEncoding(NSUTF8StringEncoding)
  15. if sqlite3_open(cpath!, &db) != SQLITE_OK {
  16. sqlite3_close(db)
  17. assert(false, "数据库打开失败。")
  18. } else {
  19. //创建一个系统参数配置表,有3个字段,分别是 名字、值和备注
  20. let sql = "CREATE TABLE IF NOT EXISTS  SysConfig (name TEXT PRIMARY KEY, value TEXT , comment TEXT)"
  21. let cSql = sql.cStringUsingEncoding(NSUTF8StringEncoding)
  22. if (sqlite3_exec(db,cSql!, nil, nil, nil) != SQLITE_OK) {
  23. sqlite3_close(db)
  24. assert(false, "建表失败。")
  25. }
  26. sqlite3_close(db)
  27. }
  28. return theResult
  29. }

ssqlit3.0数据库使用方法相关推荐

  1. ubuntu mysql 迁移_(最新)ubuntu20.04LTS版迁移mysql8.0数据库的方法

    (最新)ubuntu20.04LTS版迁移mysql8.0数据库的方法 之前mysql通过apt安装的,运行一段时间之后,发现根分区过小,有必要将占用空间大的数据库迁移到home分区,于是,有了这篇文 ...

  2. PLSQL Developer 9.0 下载+汉化+注册机 以及无法连接到64位数据库解决方法

    一.PLSQL Developer 9.0 下载        http://download.allroundautomations.com/plsqldev906.exe     PLSQL De ...

  3. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  4. php图片保存在mysql_php实现上传图片保存到数据库的方法

    php实现上传图片保存到数据库的方法.分享给大家供大家参考.具体分析如下: php 上传图片,一般都使用move_uploaded_file方法保存在服务器上.但如果一个网站有多台服务器,就需要把图片 ...

  5. java struts2 session mysql 内存不足_Java - 用户在线的数据库实现方法和内存实现方法...

    一,数据库实现方法:(实现思路:基于Struts2.0的拦截器) 0,流程:struts.xml -> ApplicationContext.xml -> LoginInterceptor ...

  6. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

  7. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  8. python读取数据库导出文件_Python 获取 datax 执行结果保存到数据库的方法

    执行 datax 作业,创建执行文件,在 crontab 中每天1点(下面有关系)执行: 其中 job_start 及 job_finish 这两行记录是自己添加的,为了方便识别出哪张表. #!/bi ...

  9. 创建oracle数据库有哪些方法,oracle11g创建数据库的方法-Oracle

    oracle11g创建数据库的方法 最近自己想动手写个项目,却无从下手,因为自己以前从未用Oracle数据开发过,使用到是使用过一切都是云里雾里,看到理论的知识无用,只用动手的实践才能创造自我的价值, ...

最新文章

  1. leetcode算法题--只有两个键的键盘
  2. ITK:高斯的一阶导数进行卷积来计算图像的梯度
  3. php 实现百度文库搭建
  4. 使用python进行渗透测试_利用Python进行Web渗透测试(五):剖析HTTP请求
  5. 结构体中函数应该怎样定义才能返回值_15 函数的基本使用
  6. Node.js Error: Cannot find module express
  7. 【转】 TechED2010与我(三) —— 初识云计算
  8. SQLserver插入\更新中文乱码
  9. 如何安装cpolar内网穿透群晖NAS套件
  10. B - Silly Mistake set +思维
  11. 实战演习(二)——网站点击流数据分析
  12. 《分布式与云计算》课程笔记——2.2 Distributed Systems:P2P
  13. 端午节书法作品楷书内容_端午节毛笔字
  14. 基于 layui 的纯前端框架 cy-ui
  15. 盘点五款轻松提高工作效率的任务管理软件
  16. windows下修改黑苹果config_[Windows]【神器推荐】PearBIOS,一键傻瓜式安装黑苹果
  17. css3之before、after伪类以及简单实现购物车图标
  18. 电脑编程技巧与维护征稿启示
  19. 数据库视图的使用和原理
  20. abator配置mysql_使用Abator生产ibatis配置文件

热门文章

  1. Nginx源码分析--数据对齐posix_memalign和memalign函数
  2. 主成分分析(PCA)Python代码实现
  3. OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检测的测试代码
  4. 【Qt】ubuntu14.04.5 qt5.6中使用opencv3.4报错:Using GTK+ 2.x and GTK+ 3 in the same process is not supported
  5. 鸿蒙系统首批更新机器,鸿蒙系统升级名单
  6. base64 python兼容js_无法在中读取Base64编码的图像节点.js它是从Python发送的
  7. 什么场景使用mysql的存储过程_mysql存储过程的使用
  8. git 强制推送_Git 常用命令清单,掌握这些,轻松驾驭版本管理
  9. linux挂载media装服务,CentOS8服务器入门系列教程(五):Linux挂载光盘、yum安装软件包...
  10. matlab单机无限大系统_基于MATLAB的单机无穷大系统短路故障分析_吕鹏