У меня есть таблица с тремя текстовыми полями и изображением (CKAsset). Изображения большие. Я хочу запросить таблицу и получить только 2 текстовые поля, не загружая изображение. Есть ли способ указать, что мне нужно только 2 текстовых поля?cloudkit - я не хочу, чтобы изображения с моей таблицей загружались
Это код, я использую:
let predicate = NSPredicate(format: "CloudID = %@", tempCloudID)
let query = CKQuery(recordType: "Images", predicate: predicate)
query.sortDescriptors = [NSSortDescriptor(key: "Field1", ascending: true)]
query.sortDescriptors = [NSSortDescriptor(key: "Field2", ascending: true)]
До сих пор не могут запрашивать таблицы, они магазин должным образом, хотя со ссылкой, и удаляются при удалении таблицы, владеющей.
func test() {
//This works for storing my images, and I can delete the parent and it successfully removes all images. That’s what I want.
let parentId = CKRecordID(recordName: uploadList[uploadRecord].CloudID)
let parent = CKReference(recordID: parentId, action: CKReferenceAction.DeleteSelf)
let outputPath = NSHomeDirectory().stringByAppendingString("/Library/Pictures/" + uploadList[uploadRecord].File)
let File: CKAsset? = CKAsset(fileURL: NSURL(fileURLWithPath: outputPath))
let imageRecord = CKRecord(recordType: "Images")
imageRecord.setObject(uploadList[uploadRecord].R, forKey: "R")
imageRecord.setObject(uploadList[uploadRecord].A, forKey: "A")
imageRecord.setObject(parent, forKey: "Reference")
imageRecord.setValue(File, forKey: "Image")
publicDB.saveRecord(imageRecord, completionHandler: ({returnRecord, error in
if let err = error {
self.notifyUser("Save Image Error", message:
err.localizedDescription)
print("Image Upload Error")
} else {
dispatch_async(dispatch_get_main_queue()) {
print("Image Sent Successfully")
// Mark image to be deleted?
}
}
}))
}
Я пробовал дополнить запрос и выполнить запрос. Я делаю что-то неправильно, не уверен, что это такое.
У меня есть только 2 таблицы прямо сейчас, я не поставил их с помощью CKReference прямо сейчас, я устанавливаю «CloudID» во второй таблице как идентификатор из первой таблицы. Я посмотрел на CKReference, но не понимаю документацию, чтобы заставить ее работать и не может найти хороший пример. Я не хочу добавлять другую таблицу, не используя надлежащую CKReference, поскольку мне придется отслеживать другой идентификатор. Следующий шаг после того, как я сделаю это, - это получить изображения, прямо сейчас мне нужен список изображений для их выбора. Я попробую CKQueryOperation. Я действительно должен добавить zoneID и CKReferences. – Grumpy
Я все еще не могу найти способ установить CKReference в этой таблице. TempCloudID = 13886D9B-8389-4253-981D-51DCD573BA05, и это должно быть владельцем. Как установить для таблицы «Изображения» ссылку на этот идентификатор? – Grumpy
Я исправил предыдущую ошибку, используя CKQueryOperation. Теперь у меня есть ошибка на следующем экране, где я пытаюсь открыть изображение. Я использую let predicate = NSPredicate (format: "recordID =% @", myRecordID). myRecordID = 3F1CF4EC-95F4-4659-AA47-B00048B3BBAE. Ошибка: Поле '__recordID' имеет тип значения ссылки и не может быть запрошено с помощью строки типа значения фильтра. – Grumpy