2015-11-12 4 views
0

Я хотел бы получить всех пользователей, работающих в одном и том же общедоступном контейнере по умолчанию для моего приложения. Возможно ли получить все идентификаторы пользователей?CloudKit Извлечь все записи пользователя

Когда я пытаюсь сделать это:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"TRUEPREDICATE"]; // to search for all the records 
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Users" predicate:predicate]; 
[_publicDB performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) { 
    if (error) { 
     // Error handling for failed fetch from public database 
     NSLog(@"Error:%@", error); 
    } 
    else { 
     // Display the fetched records 
     NSLog(@"Users: %@", results); 
    } 
}]; 

Я получаю сообщение об ошибке, как это:

Error:<CKError 0x7f9c6b7331f0: "Permission Failure" (10/2007); server message = "Can't query system types"; uuid = 9CBA8EB0-D9DC-46B2-BDF4-10C036599642; container ID = "iCloud.com.xxx.xxx.MyApp"> 

вы знаете, как я могу добиться этого? Я хочу знать с точки зрения клиента (iOS), какие другие пользователи используют мое приложение.

ответ

2

Пользователи recordType - это особый тип записи, который вы не можете запросить. Если вы хотите выполнить такие запросы, тогда вы должны создать свой собственный тип записи и вставить запись для каждого пользователя.

+0

Благодарим за подтверждение. Я также думал о новом типе recordType, который будет хранить индексированные идентификаторы пользователя. Спасибо за быстрый ответ. Если честно, пользовательский тип записи должен быть доступен для запроса, чтобы избежать дублирования данных, как в моем случае;) – PiotrCh

+0

В прошлом эта таблица также содержала имя и фамилию. Я полагаю, что в целях конфиденциальности запросы пользователей были ограничены. –

Смежные вопросы