一、docker 离线安装
1 下载压缩包
官网下载地址:https://download.docker.com/linux/static/stable/x86\_64/
选择适合的版本,这里以docker-27.2.1.tgz 进行示意。
2 上传压缩包并解压
把下载好的docker-27.2.1.tgz,上传到linux服务器任意路径后,执行解压:
tar zxvf docker-27.2.1.tgz |
官网下载地址:https://download.docker.com/linux/static/stable/x86\_64/
选择适合的版本,这里以docker-27.2.1.tgz 进行示意。
把下载好的docker-27.2.1.tgz,上传到linux服务器任意路径后,执行解压:
tar zxvf docker-27.2.1.tgz |
Debian/Ubuntu从软件源一键安装
安装Docker
apt install -y docker.io docker-compose |
自启动Docker
systemctl enable --now docker |
Docker官方一键安装脚本
使用官方源安装(国内直接访问较慢)
本文代码已升级至Swift4
1,什么是Realm
Realm 于2014 年7月发布,是一个跨平台的移动数据库引擎,专门为移动应用的数据持久化而生。其目的是要取代 Core Data 和 SQLite。
2,关于Realm,你要知道下面几点:
(1)使用简单,大部分常用的功能(比如插入、查询等)都可以用一行简单的代码轻松完成,学习成本低。
(2)Realm 不是基于 Core Data,也不是基于 SQLite 封装构建的。它有自己的数据库存储引擎。
(3)Realm 具有良好的跨平台特性,可以在 iOS 和 Android 平台上共同使用。代码可以使用 Swift 、 Objective-C 以及 Java 语言来编写。
(4)Realm 还提供了一个轻量级的数据库查看工具(Realm Browser)。你也可以用它进行一些简单的编辑操作(比如插入和删除操作)
3,支持的类型
(1)Realm 支持以下的属性类型:Bool、Int8、Int16、Int32、Int64、Double、Float、String、Date(精度到秒)以及Data.
(2)也可以使用 List<object>
和 Object
来建立诸如一对多、一对一之类的关系模型,此外 Object 的子类也支持此功能。
4,Realm的安装配置
当页面复杂起来的时候,或者说,当页面控件数量太多的时候,自动布局的代码也会逐渐繁琐起来,造成了 View Controller 中的代码繁重起来
因此,这里提供一种方法,将 UI 的布局代码移动到其他文件中,这个方法受到了 👉 这篇文章 的启发,大部分的代码也是从这里出来
布局的方法使用自动布局,而且还是用 SnapKit 的那种,语言使用的是 Swift 3
先创建一个文件,普通的 Swift 文件的那种,并在里面 import SnapKit
关于使用 Realm 的一些疑问解答 👉 链接
重写 Object.primaryKey()
方法
向一个 realm 对象添加数据对象的操作,必须在一个 write
事务中进行,因为 write
事务会产生不可预计的耗时操作,因此,应尽量减少 write
事务
write
事务是同步并阻塞的
若 Thread A 开始了一个 write 事务, |
在 iOS 8 后,若使用了后台刷新的特性,并且涉及了 Realm, 则需要注意了
App 内的文件在设备锁屏下,会使用 NSFileProtection
自动加密,对 Realm 数据库进行打开操作会抛出异常
因此,需要降低 Realm 数据库文件和它的辅助文件的保护等级,同时,也可以选择使用 Realm 自带的加密方式
降低保护等级,从相关文件的上一层文件夹入手
let realm = try! Realm() |