Как получить все имя RecordType в частной базе данных CloudKit

121
12

Я хотел бы знать, как я могу получить массив со всем именем типа записи в моей частной базе данных в Cloud Kit для чтения всех моих данных?

Я сохраняю свои данные:

CKRecord* fav1 = [[CKRecord alloc] initWithRecordType:@"Favoris1"];

[fav1 setObject:@"Favoris 1 name"forKey:@"name"];
[fav1 setObject:@"2003 year"forKey:@"year"];

[self.privateDatabase saveRecord:fav1
completionHandler:^(CKRecord *savedState, NSError *error) {
if (error) {
NSLog(@"ERROR SAVING: %@", error);

}
else{
NSLog(@"SAVE OK");
}
}];

Я прочитал свои данные:

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Favoris1" predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]];
[self.privateDatabase performQuery:query
inZoneWithID:nil
completionHandler:^(NSArray *results, NSError *error)
{
if (!error)
{
NSLog(@"results query %@", results);
NSLog(@"--> %@",[[results objectAtIndex:0] objectForKey:@"name"]);
NSLog(@"--> %@",[[results objectAtIndex:0] objectForKey:@"year"]);
}

else
{
NSLog(@"FETCH ERROR: %@", error);
}
}];

Я хотел бы сохранить другую запись с другими свойствами, такими как:

CKRecord* fav2 = [[CKRecord alloc] initWithRecordType:@"Favoris2"];
[fav2 setObject:@"Favoris 2 name"forKey:@"name"];
[fav2 setObject:@"2005 year"forKey:@"year"];

Как я могу получить массив с Favoris1 и Favoris2 для чтения всех моих записей после сохранения?

спросил(а) 2015-02-05T12:32:00+03:00 5 лет, 8 месяцев назад
1
Решение
114

в CloudKit нет функции, которая вернет весь доступный тип recordType из базы данных. Вы также можете не запрашивать несколько типов записей одновременно. Вы должны выполнить 2 запроса. Что бы вы могли сделать, так это объединить результирующие массивы, если вам нужно что-то подобное.

Поскольку объекты одинаковы, было бы лучше, если бы вы только использовали 1 тип записи и добавили дополнительное поле, которое указывало бы ваш собственный тип (Favoris1 или Favoris2). Затем вы могли запросить только тип recordType и посмотреть в возвращаемом поле, какой пользовательский тип он является.

ответил(а) 2015-02-07T13:10:00+03:00 5 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема