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

sqlite3数据的使用(xcode 7,ios9)相关推荐

  1. sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...

    据 IDC 发布的<数据时代 2025>白皮书预测:在 2025 年,全球数据量将达到史无前例的 163ZB. 随着网络发展速度越来越快,数据的产生量正在呈指数级上升,企业面临的数据压力也 ...

  2. sqlite3数据导入导出

    1.导出 sqlite3 tasks.db sqlite>.output data.sql sqlite>.dump 或 sqlite3 -csv scap.db "select ...

  3. sqlite3 unicode转中文

    用pyspider爬数据,默认的sqlite3数据库内都是中文显示,可是安装了datagrip之后发现全部变成unicode码了.于是将数据导出csv,技术朋友再次出手用python搞定了 大家都知道 ...

  4. 数据存储Data Storage

    数据存储Data Storage 概览Storage quickview ²  系统偏好:快速,轻量级存储 ²  文件:存储到设备内部或可移动闪存 ²  数据库:任意的结构化存储 ²  支持基于网络的 ...

  5. 201124阶段二sqlite3 API

    目录 一).1 一).2 sqlite常用API函数 一).1 程序用到数据库时,头文件需要加 #include <sqlite3.h>, 报错没有找到头文件,报错原因是系统没有函数库,输 ...

  6. 如何使Xcode占用更少的空间 Xcode占用空间太大解决方法

    最近突然发现我的128G SSD硬盘只剩下可怜的8G多,剩下这么少的一点空间连Xcode都无法更新.怎么办呢?如果升级硬盘的话,第一要花钱,毕竟SSD硬盘还是不便宜,第二是升级比较麻烦,要拆机和迁移系 ...

  7. sqlite3 cmd命令输出乱码

    来自http://tunps.com/sqlite3-garbled-character 1. 在CMD窗口下输下:chcp 65001 确定 2. 在命令行标题栏上点击右键,选择[属性] -[字体] ...

  8. 不容错过, Paintinglite轻量级Sqlite3框架

    Paintinglite 安装 直接通过GitHub下载到本地,将Paintinglite拖到项目中,即可体验Paintinglite.需要在项目中添加Sqlite3支持的libsqlite3.tbd ...

  9. 使用纯 python 实现 Instruments 协议,跨平台 (win,mac,linux) 获取 iOS 性能数据

    原文由YueChen发表于TesterHome社区网站,点击原文链接可与YueChen交流. 前言 获取 iOS 性能数据,一直都是比较麻烦的事情,之前在构建测试框架&平台的时候,获取 iOS ...

最新文章

  1. 创业笔记-Node.js入门之阻塞与非阻塞
  2. Mocha and Red and Blue 模拟字符串
  3. 绝对路径VS相对路径
  4. 2017.4.16 阶乘之和 思考记录
  5. Python+Selenium自动化测试:Page Object模式
  6. 这组三八妇女节海报素材psd模板,你给打几分?
  7. kali linux set工具,求助: 社会工程学工具set 出现错误for kali linux.
  8. mysql update emp set_Mysql数据库性能优化一
  9. 使用谷歌语音识别打造语音管家HiVoice
  10. kprobe原理解析(一)
  11. 技术重要还是能力重要?和大学生的MSN讨论记录
  12. slickedit使用
  13. 聊天类APP的测试点
  14. 使用萤石云的出现设备不在线问题的解决方法
  15. Field属性(域)
  16. Automatic classification of defective photovoltaic module cells in electroluminescence images-论文阅读笔记
  17. 《算法图解》学习笔记(九):动态规划(附代码)
  18. 高级语言程序设计(C语言)----第三章(上) 数据类型、运算符和表达式
  19. python语言 表白程序_python程序员实现表白代码的案例
  20. 热门的国人开发开源项目

热门文章

  1. 如何将一个彩色图像转换成黑白图像
  2. 图像配准----SIFT
  3. 【C++】重载、重写、隐藏
  4. 用计算机辅助实验系统做验证牛顿第三定律,用计算机辅助实验系统(
  5. python视频抽帧 后 前端javascript如何显示_使用OpenCV编写一个可以定时抽帧的脚本...
  6. exe编辑器_windows下的EXE文件大揭密
  7. 施工管理在计算机上的应用论文,【计算机专业毕业论文】关于计算机应用技术在工程项目管理中的应用...
  8. 二叉树的基本应用知识总结
  9. Java案例——字符串拼接
  10. 合并模拟器和真机的静态库动态库aggregate