2015-08-11 1 views
1

Кто-нибудь знает способ случайного захвата одной записи из базы данных Cloudkit. Я не могу найти способ. Я смог выбрать один рекорд, ограничив результаты, возвращенные CKOperation, но это не случайно ... Я также не могу найти ответы на эту проблему в документации ...Извлечь случайную запись с помощью cloudkit

Спасибо!

(я пишу в стриже)

+0

Как генерируется идентификатор? (это случайный хеш md5, это инкрементирующее число) – Jojodmo

ответ

1

Предполагая, что RecordId является случайными справами вы можете создать свой собственный GUID и запрос для первой записи, которая больше, чем это.

Если вы сами не создаете идентификатор записи, это будет случайное руководство, назначенное CloudKit.

Это не был бы случайный выбор. Если 2 записи создаются с почти аналогичными контурами, то наибольшая из них будет иметь меньший шанс для выбора. Исходное создание указателей влияет на возможность выбора записи.

При выполнении выбора используйте CKOperation, создайте предикат, где recordID> недавно созданный guid, установите порядок в recordID и выберите только 1 запись. Когда выбор не возвращает запись, отмените порядок сортировки и выполните тот же запрос.

Лучшее решение для случайного выбора направляющих было бы, если бы вы могли последовательно записывать все записи, извлекать наибольшее число и просто создавать случайное число между 1 и самым большим числом.

+0

Благодарим за ответ! Но я действительно не понимаю, я немного новичок в этом ... Таким образом, подход должен был бы генерировать случайный идентификатор (я предполагаю, что уже существующие записи также будут иметь идентификатор, созданный таким же образом), а затем получить CloudKit для id больше, чем сгенерированный? Но как это будет случайным и работать, я не очень хорошо понимаю (это не будет большой проблемой, если я не смогу его реализовать, так как у меня также есть другой, который не требует выборки для случайной записи, это также быть более легким, но менее гибким ...) – clickbeast

+0

Я обновил ответ –

+0

Спасибо за быстрый ответ! Теперь я понимаю – clickbeast

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

  • Нет связанных вопросов^_^