2016-04-11 5 views
0

В настоящее время я переношу свои данные из Parse в CloudKit. Я смог импортировать свои данные в структуру CloudKit, но теперь я не получаю правильное количество записей. Вместо 52 пользователей (которые отображаются в информационной панели) я получаю 289 записей. Я попробовал это с простыми CKQuery и CKQueryOperation.CloudKit возвращает слишком много записей

CKQuery возвращает 100 результатов за лимит, и когда я использую CKQueryOperation, я получаю 289 результатов со многими повторяющимися записями.

Я использую следующий код (CKQuery путь ..), чтобы извлечь все мои пользователь:

let query = CKQuery(recordType: "User", predicate: NSPredicate(value:true)) 

let container = CKContainer.defaultContainer() 
let publicDB = container.publicCloudDatabase 

publicDB.performQuery(query, inZoneWithID: nil) { (records, error) in 
    print("USER public count: \(records?.count)") 
} 

И для CKQueryOperation я написал вспомогательную библиотеку, которая портирование результата автоматически в быструю классовой структуру.

let uw = ROCloudBaseWebservice<User>() 

uw.load { (data) in 
    logger.debug("User count (CKQueryOperation): \(data.count)") 
} 

Если вы хотите увидеть код с этой нагрузки вы можете увидеть здесь: https://github.com/prine/ROCloudModel/blob/master/Source/ROCloudBaseWebservice.swift

У меня то же самое с моими 3 другими таблицами, где я также получить неверное количество данных. Только одна таблица, которая имеет 4 записи, получает правильный объем данных.

У кого-нибудь еще была эта проблема? Я использую ссылки в таблицах. Может ли это привести к проблеме?

ответ

0

Я только что узнал, что в CloudKit есть ошибка, что удаленные записи каким-то образом скрыты. Я перезапустил среду разработки и снова импортировал данные, и я получил правильное количество возвращенных записей.

Более подробную информацию можно найти в этом посте StackOverflow: Deleted CloudKit records Reappear

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