Извлечь объект CKReference из CKReference
У меня есть 3 типа записей, которые содержали такие атрибуты:
клиент
Имя пользователя: строка
ProfilImage: UIImage
Комментарий
Пользователь: Ссылка клиента
Сообщение: Строка
Магазин
Комментарии: Список ссылок на комментарии
Могу ли я получить имя пользователя клиента и ProfilImage из объекта Shop CKRecord? Могу ли я сделать этот путь:
- Получить ссылки на комментарии из Record of Shop
- Получить ссылку на пользователя из каждой найденной ссылки на комментарий
- И, наконец, извлеките имя пользователя и профиль из пользовательской ссылки из комментария из справочника магазина.
Если есть путь, каков наилучший способ сделать это?
1 ответ
Решение
Вот пример для шага 1. Другие шаги будут аналогичны шагам, которые вы перечислили, каскадируя результаты каждого предыдущего шага. (ПРИМЕЧАНИЕ. Нет необходимости в явных полях CKReference, поскольку их можно извлечь из переменных CKRecord, но я хотел сделать пример более читабельным)
struct Shop {
// other variables....
var record : CKRecord?
var commentRef : CKReference?
}
struct Comment {
// other variables....
var record : CKRecord?
var clientRef : CKReference?
}
var shops : [Shop]
var comments : [Comment]
func commentsWithReference(ref: CKReference) -> [Comment] {
let matchingComments = comments.filter {$0.record!.recordID == ref.recordID }
return matchingComments
}
let shopComments = shops.map { commentsWithReference($0.commentRef!) }