【发布时间】:2021-04-23 02:01:00
【问题描述】:
我正在尝试获取我的 CloudKit 记录,然后使用新数据对其进行更新。
我已经导入了 CloudKit 框架
我已将 CloudKit 和键/值添加到我的功能中。
我已将它们纳入我的权利中。
我使用 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");
}
}];
我输入了一个错误,如果它说我正在做的事情有错误
【问题讨论】:
-
您的记录 ID 可能无效。第二行的
recordID来自哪里? -
在我的 CloudKit 仪表板上,我创建了一个具有自定义类型记录池的私有数据库,并将其命名为“MyPoolInfo”。这就是名字的由来。我尝试在第二批末尾添加一行代码来实际保存数据,但它没有显示在我的仪表板中的查询下。
-
我已经更改了一些我的第一个代码,我实际上运行没有错误,但没有保存任何东西。我没有在代码中看到它设置应该为不同的字段键保存哪些值。
-
这是我的日志所说的。我不确定如何查看实际问题。
2021-01-20 06:46:05.856774-0700 iphoneMQTT[18400:962147] this is bad 2021-01-20 06:46:05.939680-0700 iphoneMQTT[18400:962149] savedRecords:( )
标签: ios objective-c key-value cloudkit