Для начала ознакомьтесь с информацией об Apple, CloudKit Quick Start documentation. Он перейдет ко всему, что я собираюсь сказать гораздо более подробно, и я настоятельно рекомендую его прочитать.
Очень похоже на struct
s, который вы создали в своем коде, вы создадите похожие объекты на веб-портале под названием CloudKit Dashboard. Этот веб-портал станет доступен вам после того, как права на iCloud будут правильно добавлены в ваш идентификатор приложения.
На боковой панели вы увидите «Типы записей». Здесь вы можете создавать свои объекты без какого-либо кода. В кратком руководстве приводится подробная информация о том, как создать объект, также известный как «тип записи». (Экземпляр этого объекта будет называться записью.) В основном вам нужно будет создавать поля, соответствующие примитивным свойствам объекта, но в целом не редактировать уникальный идентификатор, помещенный в поле имени записи. Например, ваш тип записей Person
может иметь поля firstName
(типа String
), lastName
(типа String
), и возраст (типа Int
).
Ваш Home
тип записи, то, возможно, имеет поле houseNumber
, типа Int
.
Способ взаимодействия с CloudKit немного отличается от локальных решений хранения данных, таких как основные данные. По соображениям эффективности мы не хотим, чтобы объекты содержали группу связанных объектов, так как выборка Street
, скажем, потребовала бы получить каждый идентификатор House
, а затем извлекать каждый идентификатор Person
в House
.
Таким образом, вместо размещения массива House
объектов на Street
, мы помещаем поле типа Reference
(к House
) на нашем типе Street
записи.
Итак, с этой новой моделью типов записей, которую вы установили бы в CloudKit Dashboard, вы могли бы в коде создать CKRecord
объекты и задать свойства, соответствующие полям. Обозначая CKRecord
, представляющий House
, в котором люди живут в нем, можно было бы установить свойство house
на каждом из CKRecord
s, представляющем людей в доме.
Вы могли бы принести дом, используя CKQuery
, например, а затем принести это люди, создавая CKQuery
для всех «Людей» объектов, которые имеют идентификатор записи, соответствующий объекту дома в их house
опорном поле.
См. Adding Reference Fields в Кратком руководстве по CloudKit.
Редактировать: При установке значения поля Reference в CloudKit Dashboard значение будет уникальным идентификатором имени записи, на которую вы ссылаетесь.
Я использовал cloudkit для отправки и получения данных и с панели управления. Это просто ссылка, которая меня немного смущает. На полпути вниз по ссылке ссылки, которую вы мне предоставили, добавление ссылочных полей, ссылается на 'Artwork' и' Artist'. Предположим, я хотел узнать возраст художника «Мария Руис», но эти данные не пришли с изображением, вместо этого, скажем, он пришел с данными художника. Будет ли «Мария Руис» еще одной публичной записью? На самом деле сейчас я пишу это, я считаю, что ссылки нуждаются в работе назад? Поэтому я создаю запись для «Личность» и ссылаюсь на «Главная» – luke
Извините, если все это путано читать, а то, что я прошу, не кратки. Мне кажется, я знаю, что хочу знать, но знать, что я хочу спросить, сложно. – luke
Вы правы, что записи в CloudKit работают обратными. У вас будет поле для ссылки на Person, которое указывает на Дом. Затем вы можете создать запрос для всех «человек» для данного дома. –