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

Я хотел бы знать, как я могу получить массив со всеми именами типов записей в моей частной базе данных в 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 для чтения всех моих записей после сохранения?

1 ответ

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

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

Другие вопросы по тегам