我如何 post 数据到 CKRecord 字段 objc

how do I post data to CKRecord Fields objc

我正在尝试获取我的 CloudKit 记录,然后用新数据更新它。
我导入了 CloudKit 框架 我已将 CloudKit 和 key/values 添加到我的功能中。 我已将它们放入我的权利中。 我使用 Schemas 创建新的自定义类型私人记录并添加了 5 个字段。 我想知道如何在我的 iphone 应用程序中更新这些字段字符串,然后在我的手表应用程序中获取该信息并将数据放入文本标签中。
我尝试了各种方法,但似乎没有任何效果。 我在 objc 工作。 谁能帮帮我。

这是我尝试开始工作但收效甚微的一些代码。 作为一名 68 岁的退休美术老师,我自学了这一点,我不是受过训练的编码员,需要我能得到的所有帮助。

我刚刚试过了,它运行了,但是我看不到我把我输入的键的值放在哪里。我把这些值放在哪里修改。

[[CKContainer defaultContainer].privateCloudDatabase fetchRecordWithID:recordID
                         completionHandler:^(CKRecord *record, NSError *error) {
            record = [[CKRecord alloc] initWithRecordType: @"MyPoolInfo"];
            [record setObject: self.myTemp forKey: @"temperature"];
            [record setObject: self.myDate forKey: @"date"];
            [record setObject: self.myLevel forKey: @"level"];
            [record setObject: self.myTrip forKey: @"trip"];
            [record setObject: self.myBattery forKey: @"battery"];
            NSArray *myFields = [NSArray arrayWithObjects:record,nil];
            //NSArray *recordsToSave = [NSArray arrayWithObjects:self.myTemp,self.myDate,self.myLevel,self.myTrip,self.myBattery, nil];
            CKModifyRecordsOperation *modifyRecords= [[CKModifyRecordsOperation alloc]
                             initWithRecordsToSave:myFields recordIDsToDelete:nil];
          //[modifyRecords setValue:@"one" forKey:@"temperature"];
                      modifyRecords.savePolicy=CKRecordSaveAllKeys;
                      modifyRecords.qualityOfService=NSQualityOfServiceUserInitiated;
                      modifyRecords.modifyRecordsCompletionBlock=
                           ^(NSArray * savedRecords, NSArray * deletedRecordIDs, NSError * operationError){
            //   the completion block code here
                               
                               NSLog(@"savedRecords:%@",savedRecords);
                        };
                      
            
            [[CKContainer defaultContainer].privateCloudDatabase addOperation:modifyRecords];
         }];

这个我也试过了

CKRecord *record = [[CKRecord alloc] initWithRecordType: @"Pools"];
            [record setObject: self.myTemp forKey: @"temperature"];
            [record setObject: self.myDate forKey: @"date"];
            [record setObject: self.myLevel forKey: @"level"];
            [record setObject: self.myTrip forKey: @"trip"];
            [record setObject: self.myBattery forKey: @"battery"];
            [[CKContainer defaultContainer].privateCloudDatabase saveRecord:record completionHandler:^(CKRecord *record, NSError *error)
              { if (!error) {
                NSLog(@"this is being accessed1");
            }
            else{
                NSLog(@"this is bad");
            }
              }];

我输入了一个错误,它说我正在做的事情有错误

您需要使用 CKRecord 对象将数据传入和传出数据库。每个人都必须具有与您在仪表板中定义的记录相匹配的记录类型。这是我自己的代码中的示例;

  CKRecord *record = [[CKRecord alloc] initWithRecordType: @"addressRecord" ]; 
  [record setObject: patientRecord.address1 forKey: @"street1"];
  [record setObject: patientRecord.address2 forKey: @"street2"];
  [record setObject: patientRecord.city forKey: @"city"];
  [record setObject: patientRecord.state forKey: @"state"];

可以插入或修改;

  [privateDB saveRecord:record completionHandler:^(CKRecord *record, NSError *error)
  { .....
  }];

你的

  initWithRecordsToSave:myFields recordIDsToDelete:nil];

需要让 myFields 成为 CKRecords 数组。