A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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、创建一条记录

  1. //创建一条记录的ID并指定一个唯一的名字,  
  2.     CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"czbk"];  
  3.       
  4.     //创建一个记录对象  
  5.     CKRecord *artworkRecord = [[CKRecord alloc] initWithRecordType:@"Person" recordID:artworkRecordID];  
  6.       
  7.     //设置记录字段  
  8.     artworkRecord[@"job" ] = @"itcast";  
  9.     artworkRecord[@"name"] = @"欧阳情";  
  10.     artworkRecord[@"address"] = @"北京";  
复制代码

    3、保存记录


  1. //1、创建一个容器(使用默认容器)  
  2. CKContainer *myContainer = [CKContainer defaultContainer];  
  3.   
  4. //2、创建数据库  
  5. CKDatabase *publicDatabase = [myContainer publicCloudDatabase];  
  6.   
  7. //3、将记录保存在数据库  
  8. [publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord *artworkRecord, NSError *error){  
  9.     if (!error) {  
  10.          
  11.         NSLog(@"保存成功");  
  12.     }  
  13.     else {  
  14.         NSLog(@"保存失败%@",error);  
  15.     }  
  16. }];  
复制代码

4、运行程序之前需要到模拟器 -- 设置-- iCloud 登录你的apple ID(可以不是开发者账号)



5、保存成功后我们登录CloudKit后台看一下有什么变化



6、怎样查询我们保存好的内容呢?

*由于记录类型创建时保存的元数据使用的是即使模式(just-in-time),所以我们要在这里启用记录ID查询索引:




7、在代码中获取我们保存好的内容



  1. //1.创建容器  
  2.     CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];  
  3.       
  4.     //2.创建记录ID  
  5.     CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"czbk"];  
  6.       
  7.     //3.查询  
  8.     [publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {  
  9.         if (error) {  
  10.               
  11.             NSLog(@"获取失败:%@",error);  
  12.         }  
  13.         else {  
  14.               
  15.             //CKRecord很像一个字典,我们可以这样获取,搜噶~~  
  16.             NSString *address = artworkRecord[@"address"];  
  17.               
  18.             NSLog(@"address : %@",address);  
  19.               
  20.         }  
  21.     }];  
复制代码

8、修改我们保存好的内容
  1. //1.获取数据库
  2. CKDatabase *publicDatabase = [[CKContainer defaultContainer]
  3. publicCloudDatabase];
  4. //2.记录ID
  5. CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"115"];

  6. //3.查询
  7. [publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord
  8. *artworkRecord, NSError *error) {
  9. if (error) {

  10. //处理错误

  11. }else {

  12. // 修改数据库中的记录。。。your code


  13. //保存时间
  14. NSDate *date = artworkRecord[@"date"];
  15. artworkRecord[@"date"] = [date dateByAddingTimeInterval:30.0 * 60.0];

  16. //保存
  17. [publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord
  18. *savedRecord, NSError *saveError) {
  19. //处理错误
  20. }];
  21. } }];
复制代码

四、总结

有木有感觉So easy 呢!CloudKit的功能当然不只这些,而且还在不断完善~~相信以后会越来越好, 对了,忘记告诉大家苹果给我们提供了1PB 的空间,相当于1024个我的1T硬盘,快来体验一下吧!




精华推荐:


2 个回复

正序浏览
多谢分享
回复 使用道具 举报
棒!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马