0

使用 CloudKit v1,您可以保存这样的记录:

function demoSaveRecord(recordName,recordChangeTag,zoneName,name,location,asset) {

  var container = CloudKit.getDefaultContainer();
  var privateDB = container.privateCloudDatabase;

  var record = {
    recordType: 'Items',
    fields: {
      name: { value: name }, ...
    }
  };

  return privateDB.saveRecord(record,options)
    .then(function(response) {
      if (response.hasErrors) {
        // Handle the errors in your app.
        throw response.errors[0];

      } else {
        // It worked
        var createdRecord = response.records[0];
      }
    });
}

但在 CloudKit JS v2 中,他们删除了 .saveRecord 选项。

所以现在我被卡住了,因为我不知道如何在 v2 中保存记录。如果有人可以帮助我,或者可以向我展示 v2 的良好文档,请提供帮助。

CloudKit JS API 差异 v2 https://developer.apple.com/library/content/releasenotes/General/CloudKitJS_v2_APIDiffs/JavaScript/CloudKitJS.html

4

1 回答 1

1

显然你必须.newRecordsBatch().create(record).commit()改用。

在我的示例中,它看起来像这样:

function demoSaveRecord(recordName,recordChangeTag,zoneName,name,location,asset) {

  var container = CloudKit.getDefaultContainer();
  var privateDB = container.privateCloudDatabase;

  var record = {
    recordType: 'Items',
    fields: {
      name: { value: name }, ...
    }
  };

  return privateDB.newRecordsBatch().create(record).commit()
    .then(function(response) {
      if (response.hasErrors) {
        // Handle the errors in your app.
        throw response.errors[0];

      } else {
        // It worked
        var createdRecord = response.records[0];
      }
    });
}

您可以使用相同的方法来创建、更新和删除记录,如下所示:

myDatabase.newRecordsBatch()
    .create(someRecord)
    .update(someOtherRecord)
    .delete(aThirdRecord)
    .commit()

文档可以在这里找到: https ://developer.apple.com/documentation/cloudkitjs/cloudkit.recordsbatchbuilder

于 2017-09-21T08:11:27.113 回答