У меня есть RecordType Account
и еще один Friends
. Для Account
Я устанавливаю RecordID
на создание каждой записи, и у меня есть столбец Name
.CKReference on CloudKit с использованием Swift
Для друзей У меня есть две колонки, Me
и MyFriend
. MyFriend
- это ссылка, содержащая учетную запись RecordID
.
Как я могу получить имена учетных записей, которые являются моими друзьями? Мне нужно запросить друзей, чтобы получить все записи, где Me
- это мой RecordID
, а затем мне нужно использовать эти ссылки записей, чтобы получить имена из таблицы учетных записей.
Я попытался следующие, но я не получаю никаких результатов:
let predicate = NSPredicate(format: "Me = %@", recordID)
let query = CKQuery(recordType: "Friends", predicate: predicate)
publicDB.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in
if error != nil {
println("Error fetching from Friends table: \(error.description)")
} else {
for friend in results {
var key = friend.objectForKey("MyFriend") as String
self.publicDB.fetchRecordWithID(CKRecordID(recordName: key), completionHandler: { (record, error) -> Void in
if error != nil {
println(error.description)
} else {
self.friends.append(record.objectForKey("Name") as String)
}
})
}
dispatch_semaphore_signal(self.semaphore)
}
}
dispatch_semaphore_wait(self.semaphore, DISPATCH_TIME_FOREVER)`
Вы что-то пробовали? – Phate01
Я обновил свой вопрос. Благодарю. –
Является ли поле 'Me' типа CKReference? Тогда значение, которое вы используете в предикате, должно иметь тип CKReference. Теперь вы используете recordID. Я подозреваю, что это поле типа recordID? Затем вы должны сначала создать CKReference. –