本帖最后由 Simpon 于 2016-10-19 11:43 编辑
一、简介 从iOS8开始,苹果为开发者提供了ClouKit,可以把我们的应用程序和用户数据存储在iCloud上,说白了就是代替后台服务器开发,我们只要专注移动开发就好了。
二、集成 1、使用CloudKit你需要拥有一个开发者账号,并且在你的Xcode中配置好,如下图:
2、选择capabilities 将iCloud打开,并选中CloudKit复选框 ,xcode会以当前bundle id创建一个默认的容器,点击CloudKit Dashboard我们就可以访问CloudKit后台了,当然也可以通过网址访问:https://icloud.developer.apple.com/dashboard
3、登录你的开发者账号后进入下面的界面
三、使用 1、导入CloudKit.framework框架
2、创建一条记录 - //创建一条记录的ID并指定一个唯一的名字,
- CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"czbk"];
-
- //创建一个记录对象
- CKRecord *artworkRecord = [[CKRecord alloc] initWithRecordType:@"Person" recordID:artworkRecordID];
-
- //设置记录字段
- artworkRecord[@"job" ] = @"itcast";
- artworkRecord[@"name"] = @"欧阳情";
- artworkRecord[@"address"] = @"北京";
复制代码
3、保存记录
- //1、创建一个容器(使用默认容器)
- CKContainer *myContainer = [CKContainer defaultContainer];
-
- //2、创建数据库
- CKDatabase *publicDatabase = [myContainer publicCloudDatabase];
-
- //3、将记录保存在数据库
- [publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord *artworkRecord, NSError *error){
- if (!error) {
-
- NSLog(@"保存成功");
- }
- else {
- NSLog(@"保存失败%@",error);
- }
- }];
复制代码
4、运行程序之前需要到模拟器 -- 设置-- iCloud 登录你的apple ID(可以不是开发者账号)
5、保存成功后我们登录CloudKit后台看一下有什么变化
6、怎样查询我们保存好的内容呢? *由于记录类型创建时保存的元数据使用的是即使模式(just-in-time),所以我们要在这里启用记录ID查询索引:
7、在代码中获取我们保存好的内容
- //1.创建容器
- CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
-
- //2.创建记录ID
- CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"czbk"];
-
- //3.查询
- [publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {
- if (error) {
-
- NSLog(@"获取失败:%@",error);
- }
- else {
-
- //CKRecord很像一个字典,我们可以这样获取,搜噶~~
- NSString *address = artworkRecord[@"address"];
-
- NSLog(@"address : %@",address);
-
- }
- }];
复制代码
8、修改我们保存好的内容
- //1.获取数据库
- CKDatabase *publicDatabase = [[CKContainer defaultContainer]
- publicCloudDatabase];
- //2.记录ID
- CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"115"];
- //3.查询
- [publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord
- *artworkRecord, NSError *error) {
- if (error) {
- //处理错误
- }else {
- // 修改数据库中的记录。。。your code
- //保存时间
- NSDate *date = artworkRecord[@"date"];
- artworkRecord[@"date"] = [date dateByAddingTimeInterval:30.0 * 60.0];
- //保存
- [publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord
- *savedRecord, NSError *saveError) {
- //处理错误
- }];
- } }];
复制代码
四、总结 有木有感觉So easy 呢!CloudKit的功能当然不只这些,而且还在不断完善~~相信以后会越来越好, 对了,忘记告诉大家苹果给我们提供了1PB 的空间,相当于1024个我的1T硬盘,快来体验一下吧!
精华推荐:
|