close
当前位置: 物联网在线 > 技术文库 > ios >

WCDB:微信开源的高效、完整、易用的移动数据库框架

WCDB是一个高效、完整、易用的移动数据库框架,基于 SQLCipher ,支持iOS, macOS和Android。

WCDB for iOS/macOS 基本功能

WINQ (WCDB语言集成查询): 通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。

ORM (Object Relational Mapping): WCDB支持灵活、易用的ORM。开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。

多线程高并发 : WCDB支持多线程读与读、读与写并发执行,写与写串行执行。

加密 :WCDB提供基于 SQLCipher 的数据库加密。

损坏修复 : WCDB内建了Repair Kit用于修复损坏的数据库。

反注入 : WCDB内建了对SQL注入的保护。

...

入门 基本要求

WCDB支持iOS 7、macOS 10.9以上。

WCDB需使用Xcode 8.0以上版本进行编译。

需使用Objective-C++。

安装

通过Carthage安装

先安装 ;

在Cartfile中添加 github "Tencent/WCDB" ,并执行 carthage update ;

将  Carthage/Build/ 目录下iOS或Mac的  WCDB.framework  添加到你的项目工程配置的 Build Phases -> Linked Binary and Libraries 中。

点击你的项目工程配置的 Build Phases 中的 + 选项,在弹出菜单中选择 New Run Script Phase 。在创建的脚本中添加 carthage copy-frameworks ,并在 Input Files 中添加对应平台的路径 $(SRCROOT)/Carthage/Build/iOS/WCDB.framework 或 $(SRCROOT)/Carthage/Build/Mac/WCDB.framework 。

在你的代码文件头引入头文件 #import <WCDB/WCDB.h> 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀 .m 改为 .mm 。

通过cocoapods安装

先安装 Cocoapods ;

通过 pod repo update 更新WCDB的cocoapods版本。

在Podfile对应的target中,添加 pod 'WCDB ,并执行 pod install 。

在项目中使用CocoaPods生成的 .xcworkspace 运行工程。

在你的代码文件头引入头文件 #import <WCDB/WCDB.h> 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀 .m 改为 .mm 。

通过动态库安装 : 动态库与iOS 7不兼容,因此需支持iOS 7的需要通过静态库安装。

获取源码。如果是通过git clone,需指定recursive参数: git submodule update --init --recursive 。

将 WCDB.xcodeproj 添加到你的工程中.

在你的项目工程配置的 Build Phases -> Target Dependencies 和 Build Phases -> Linked Binary and Libraries 中添加 WCDB.framework 。

在你的项目工程配置的 General -> Enbedded Binaries 中添加 WCDB.framework 。

在你的代码文件头引入头文件 #import <WCDB/WCDB.h> 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀 .m 改为 .mm 。

通过静态库安装:

获取源码。如果是通过git clone,需指定recursive参数: git submodule update --init --recursive 。

将 WCDB.xcodeproj 添加到你的工程中.

在你的项目工程配置的 Build Phases -> Target Dependencies 中添加 WCDB iOS Static.framework 。

在你的项目工程配置的 Build Phases -> Linked Binary and Libraries 中添加 WCDB.framework 和 libz.tbd 。 注意,这里有两个 WCDB.framework ,需要添加 WCDB iOS Static 的 target 下的 WCDB.framework 。

在你的项目工程配置的 Build Settings -> Other Linker Flags 中添加 -all_load 和 -ObjC 。

在你的代码文件头引入头文件 #import <WCDB/WCDB.h> 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀 .m 改为 .mm 。

使用教程

使用教程请参考 这里

相关文档

文档请参考 wiki .

接口请参考 API reference

WCDB for Android 基本功能

基于 SQLCipher 的数据库加密

使用连接池实现并发读写

内建 Repair Kit 可用于修复损坏数据库

针对占用空间大小优化的数据库备份/恢复功能

日志输出重定向以及性能跟踪接口

内建用于全文搜索的 mmicu FTS3/4 分词器

入门 接入与迁移

WCDB for Android 可通过 Maven 或 AAR 包引用,API 接口与 Android SDK 非常相近, 所以将已有的 App 迁移到 WCDB 是相当容易的。

详细请参看 Android 接入与迁移 与 sample-encryptdb 示例。

数据库修复

WCDB 可以使用 Repair Kit 或备份恢复来修复损坏的数据库,请参看 Android 数据库修复 与 sample-repairdb 示例。

从源码编译 编译 WCDB

你可以使用预编译的依赖库(OpenSSL crypto 和 SQLCipher)来编译 WCDB for Android, 使用 Gradle 或 Android Studio 皆可。

cd android ./gradlew build

Android Studio 请导入 android 目录作为 Root Project。

编译 WCDB 需要安装 Android NDK r11c 或以上,并在 android/local.properties 上配置好 SDK 与 NDK 路径。Android Studio 一般会帮你配置好。

编译依赖项
(责任编辑:ioter)

用户喜欢...

iOS开源:WJClipsButton-Clips 按钮的完整实现

效果 要求 Swift 3.0 iOS 8.0 Xcode 8.0 安装 WJClipsButton is available through CocoaPods . To install it, simply add the following line to your Podfile: pod "WJClipsButton" 使用 Code Import import WJClipsButton Init Setup let wjButton = WJCl...


33 款主宰 2017 iOS 开发的开源库

你好, iOS 开发者们 !我的名字是 Pawel,是一名 iOS 独立开发者,也是 Enter Universe 的作者。 大概在两年前,我发布了 。这篇文章是我的一个最佳纪录(用户好评数): 因为有 15.5万人 关注过...


iOS开源:CBPic2ker - 图片选择,不但酷而且美还支持人脸识别

效果 特性 酷 给你丝滑的美 人脸识别 版本要求 iOS 8.0 安装 CBPic2ker 已经支持了CocoaPods. 只要在你的 Podfile 文件中添加下面的语句即可: pod "CBPic2ker" 不要忘记在info.plist文件中添加描述: 使用...


iOS开源:iOSPalette-图片精确提取主色调算法

Objective-C版本的Google Palette算法在Java.A工具中提取了一个图像的主要颜色。与传统的算法相比,iOSPalette可以帮助您提取更有可能成为“主色”的主色。它不是 总是像素数中最大的。 2.Why iOS-...


IOS开源:HHBadgeHUD-一款更 Q 的通知图标控件(OC)

一款更Q的通知图标控件。 演示项目 查看并运行 HHBadgeHUDDemo/HHBadgeHUDDemo.xcodeproj 特性 无侵入性 : 轻量 : 易扩展 : 使用方法 ###数字图标样式 // 1. 给UIView添加通知图标self.oneView.hh_badge = [HHCountB...


iOS开源:UILabel-可设置字间距,行间距等

屏幕快照 2016-04-14 下午9.58.53.png 实现的功能: 简单的利用Runtime给UILabel添加了属性 字间距 行间距 设置下划线 设置关键字 自适应宽高 详细用法请查看Demo...


iOS开源-轻量级 JSON 转 Model 框架,使用链式编程,无侵入

SuperKVC is a light-weight injection framework to convert JSON to Model. SuperKVC has its own config DSL which provides a chainable way of describing your injection config concise and readable. SuperKVC supports iOS and macOS. Samples are at the Su...


iOS开源:Magnetic - 可定制地类似 Apple Music 磁力吸引式泡泡选择器组件

Magneticis a customizable bubble picker like the Apple Music genre selection. $ pod try Magnetic 要求 iOS 9.3+ Xcode 8.0+ Swift 3.0+ 使用 A Magnetic object is an SKScene . To display, you present it from an SKView object. import Magneticclass V...


iOS开源:AAChartKit -一款极其精美的 iOS 开源图表库

AAChartKit项目,是在流行的开源前端图表库 Highcharts 的基础上,封装的面向对象的,一组简单易用,极其精美的图表绘制控件. 适配 iOS 8, 支持ARC,支持 OC语言,配置简单. 功能强大,支持柱状图 条形图...


iOS开源:Tkeyboard - 通过蓝牙,使用 Mac 的键盘输入内容到 iPhone 设备中

在咖啡馆耗费了数个周末之后,终于将这个灵光一闪的点子变成了一个实实在在可以运行的 app。同时意味着年初制定的第一个小目标达成,完成了 2017年的第一个独立 app。 在app上架的同时,...