美文网首页
关于CloudKit使用

关于CloudKit使用

作者: leverkusen188 | 来源:发表于2018-07-26 10:55 被阅读0次

    前言:

    CloudKit是IOS8 以后推出的 远端数据存储功能。

    可以将自定义的数据存入iCloud服务器,同时也支持删除修改等操作。

    但数据的相关操作权限是受 数据所存储DB类型 和 当前手机icloud用户 而定的。

    CloudKit 引入步骤:

    1. 登入 开发者证书管理界面(https://developer.apple.com/account/ios/certificate/?teamId=XMUP6559UU)

    2. 在 iCloud Containers一栏,新增一个cloud container。(新增的container的ID 必须跟 xcode的对应工程的target的 BundleID一致,除了 iCloud 前缀外)

    3. xcode新建一个工程,bundleID 与上面一致,并打开iCloud 功能。

    4. 相关实现代码:

    CKContainer *myContainer = [CKContainer defaultContainer];     //获取container,可以用ID来指定 自定义的container,也可以使用默认的。

    CKDatabase *publicDatabase = [myContainer publicCloudDatabase];    //获取container里的 db。这里用的是public DB。

    CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"119"];       //recordID, name必须在这个DB里是唯一的。

    CKRecord *artworkRecord = [[CKRecord alloc] initWithRecordType:@"Artwork" recordID:artworkRecordID];   //创建一条新的record。recordType 类似于DB的表名。

    artworkRecord[@"name"] = @"testName";    //record的 这种key-value 存储方式;value支持的数据类型参考 CKRecord.h 的CKRecordValue协议

    //新建/更改记录

    CKModifyRecordsOperation *modifyRecords= [[CKModifyRecordsOperation alloc] initWithRecordsToSave:@[artworkRecord] recordIDsToDelete:nil];    modifyRecords.savePolicy=CKRecordSaveAllKeys;   

    modifyRecords.qualityOfService=NSQualityOfServiceUserInitiated;   

    modifyRecords.modifyRecordsCompletionBlock=    ^(NSArray * savedRecords, NSArray * deletedRecordIDs, NSError * operationError)

    {        //   the completion block code here       

    NSLog(@"");   

    };

    //获取记录

    [publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord * _Nullable record, NSError * _Nullable error) {        NSLog(@"");    }];

    5. 登入 icloud远端数据管理平台进行查看:icloud数据管理平台

    关于远端DB类型:

    privateCloudDatabase:奴属于当前手机icloud账户的DB,该账户登录期间,数据提交到该DB里,且只有在该账户登录时,才能取到相关记录。切换icloud账户将无法获取到。

    publicCloudDatabase:所有人都可以访问,但只限于同bundleID的 app。(由于container 的bundle ID限制)

    sharedCloudDatabase:IOS10新推出的,用 CKShare 创建的记录,设定一定的权限 即可被遵守相同规则的 app访问到。

    TO BE CONTINUED....

    相关文章

      网友评论

          本文标题:关于CloudKit使用

          本文链接:https://www.haomeiwen.com/subject/opbvmftx.html