好了,看完了key-value
,看完了Document
的存储,终于到了Cloud kit
的使用了。
比起前边的两种,Cloud kit
更像是一个数据库。苹果会提供一个dashboard作为云存储的管理端。
Cloud Kit 基础
cloud kit一共有7个基础类,简单了解一下这些基础类接下来的使用就比较容易理解了。
CKContainer
CKContainer
类似于应用运行时的沙盒,一个应用只能访问自己的沙盒,同样的,一个应用也只能访问自己的Container。
通过初始化之后就可以使用
|
|
CKDatabase
CKDatabase
很明显就是数据库,他拥有私有数据库和公有数据库两种类型。用户只能访问自己的私有数据库,一些不敏感的数据也可以存储在公有数据库中。
|
|
CKRecord
CKRecord
就是数据库中的一条数据记录,他通过key-value的方式来存储和获取数据。目前可以支持如下格式的数据:
- NSString(swift中的Sting)
- NSNumber
- NSData
- NSDate
- CLLocation
- CKReference
- CKAsset
其中图片的数据类型需要先初始化一个URL,然后把图片保存到本地沙盒,生成URL,再创建CKAsset
来存储。
CKRecordZone
CKRecordZone
是用来保存Record
的。所有的Record
都是保存在这里,应用有一个默认的zone
,也可以自定义zone
。
CKRecordIdentifier
CKRecordIdentifier
是Record
的唯一标示,用来确定Record
在数据库中的位置。
CKReference
CKReference
是一种引用关系。
CKAsset
CKAsset
为资源文件,比如之前提到的照片就是用这种方式存储的。
CloudKit Dashboard
更新:
这里还有一个WWDC的视频介绍Cloud dashboard
Build Better Apps with CloudKit Dashboard
CloudKit Dashboard 的入口在这里:
你也可以直接访问地址。
这个界面好像更新过了,和网上很多教程的样式都不太一样。新的界面长这样:
新的界面包括开发版和产品版(线上版)两种,在开发的时候我们就只针对左边的开发版进行操作就可以了。无论是那个版本,都有五个相同的入口。
Data
Cloud kit的数据管理中心入口。在这里可以进行数据的字段,索引等内容设定。
Logs
查看Cloud kit的服务日志,显示数据库操作,推送通知以及对应环境中的其他活动。
Telemetry
查看对应环境中服务器端性能和数据库利用率的图表。
Public Database Usage
查看公共数据库的使用情况图标,包括活跃用户、请求频率等。
Api Access
管理API令牌和服务器密钥,允许对应环境进行web服务调用。
使用
这次我们只讲简单的操作,所以本篇文章就只使用 Data中的部分功能。
创建RECORD TYPE
首先点击Data , RECORD TYPE , Create New Type创建一个新的RECORD TYPE。
这里注意,我们的RECORD TYPE Name 是Note,这个在之后代码里操作非常重要,所以记得不要写错了。
添加Field
有了表,接下来就是添加字段了。点击Add Field 然后输入字段名,选择类型就可以了。这里可以一次性添加多条,添加完点击保存就可以了。
添加的内容有:
- title String
- content String
- photo Asset
添加Indexs
为了搜索更方便一些,我们添加一些索引。
点击INDEXS,选择我们刚刚添加的Note,然后添加索引,添加的索引类型有QUERYABLE,SEARCHABLE,SORTABLE。
添加的内容有:
- title QUERYABLE
- title SEARCHABLE
- title SORTABLE
- content QUERYABLE
- content SEARCHABLE
- content SORTABLE
- recordName QUERYABLE
添加完就是这样的,对照一下看看有没有添加错啊。
添加数据
接下来,我们就可以给表里添加数据了。
选择RECORD ,确认LOAD RECORDS FROM和QUERY FOR RECORDS OF TYPE 都正确了之后,点击Creat New Record…,在右边输入想要插入的数据,添加个几条就可以了。
查询数据
随便添加几条数据之后,还是在这个页面,点击左侧的Query Records,就可以查询到数据了。
到此,Cloud Dashboard的简单使用就介绍到这,接下来我们看看通过代码怎么来操作Cloud kit。
撸起袖子写代码吧。
通过代码操作Cloud Kit
使用Cloud Kit时,首先要先引入Cloud kit的框架。
|
|
添加数据
首先创建一个容器
|
|
然后获取数据库,这里我们使用公有数据库
|
|
接下来创建一条数据,这里的RECORD_TYPE_NAME
就是之前创建表的名字Note
|
|
添加数据是使用Key-value的方式。
|
|
这里要特殊注意的是图片的处理,我们先要创建一个URL,然后把图片数据保存到沙盒中,生成一个URL,再创建CKAsset。
|
|
对了,还有CKAsset转UIImage的方法:
|
|
这样数据的内容就处理好了,接下来我们只要把它保存起来就可以咯。
|
|
整个代码合起来就是这样的:
|
|
查询数据
查询所有数据
查询数据同样,我们也要先获取容器和数据库。
|
|
之后我们添加一个查询的条件,cloud kit和core data一样,都是使用NSPredicate
。
而且还要用到CKQuery
这个类。
|
|
准备好了,接下来就可以调用查询方法了,获取到的results就是获取到数据的数组了,这里我用了通知的方法把查询到的数据传出去。
|
|
整个代码合起来就是这样的:
|
|
查询单个数据
同样也是获取容器和数据库。
|
|
然后我们需要获取查询的数据的RecordID。
|
|
合起来代码就是这样的:
|
|
删除数据
删除数据同样,我们也要先获取容器和数据库。
|
|
然后,在删除数据时,要获取到你要删除的数据的RecordID,之后直接执行删除方法即可
|
|
合起来代码就是这样
|
|
修改数据
还是那句话,先获取容器
|
|
其实修改数据就是重新把数据写入。在写入的时候如果选择之前没有的key,就相当于新增了一个字段。然后执行保存操作就可以了。
直接上全部的代码好了:
|
|
Demo
先放一下demo的地址。
demo简单的制作了一个简单的cloud kit存储功能,一些交互没有完善,但是基本的增删改查功能都已经实现了。
以上就是Cloud Kit
的简单使用。此文章仅供个人学习使用,如有不当,希望大佬指出。