我目前在我的应用中设置了 CloudKit ,以便在下面的以下代码的帮助下添加新记录,
CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"stringArray"];
CKRecord *record = [[CKRecord alloc] initWithRecordType:@"Strings" recordID:recordID];
[record setObject:[NSArray arrayWithObjects:@"one", @"two", @"three", @"four", nil] forKey:@"stringArray"];
[_privateDatabase saveRecord:record completionHandler:nil];
但是,现在,我希望能够获取具有相同记录类型“字符串”的所有记录,并将已编译的记录返回到NSArray中。我将如何去做?目前,我所能想到的就是如何使用recordID来单独获取每条记录,这很麻烦,必须有一种更简单的方法。
[_privateDatabase fetchRecordWithID:recordID completionHandler:^(CKRecord *record, NSError *error) {
if (error) {
// Error handling for failed fetch from private database
}
else {
NSLog(@"ICLOUD TEST: %@", [record objectForKey:@"stringArray"]);
}
}];
最佳答案
Aaaand,我知道了。使用下面的代码,我能够创建一个查询来在数据库上运行,然后在完成的块中返回一个NSArray,并循环遍历该块,并在NSLog中返回已保存键的值。
NSPredicate *predicate = [NSPredicate predicateWithValue:YES];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Strings" predicate:predicate];
[_privateDatabase performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
for (CKRecord *record in results) {
NSLog(@"Contents: %@", [record objectForKey:@"stringArray"]);
}
}];
关于ios - CloudKit:获取具有特定记录类型的所有记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28402846/