我如何 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 数组。
我正在尝试获取我的 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 数组。