Как определить класс CKRecord
Я подумал, что было бы неплохо определить мой базовый объект данных, содержащий информацию, как CKRecord, поскольку я, очевидно, буду использовать CloudKit. Тем не менее, я не знаю, как сделать класс CKRecord. В частности, я не знаю, как определить его "recordType".
Мой конкретный вопрос: почему строка "self.recordType = "myRecordType"вызывает ошибку" Невозможно присвоить recordType in self"? Каждый из этих классов CKRecord будет одного типа, поэтому как мне назначить ему recordType?
Мой дополнительный вопрос, если у вас есть замечания: видите ли вы какие-либо другие проблемы с использованием объекта этого класса в CloudKit (чтение и запись) непосредственно в запросах и т. Д.? Пожалуйста, дайте мне знать, если вы видели где-нибудь похожий пример кода. Спасибо
class testCKRecordClass: CKRecord {
override init!(recordType: String!) {
self.recordType = "myRecordType"
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var title: NSString {
get {
return self.objectForKey("title") as NSString
}
set {
self.setObject(newValue, forKey: "title")
}
}
var location: CLLocation? {
get {
return self.objectForKey("location") as? CLLocation
}
set {
self.setObject(newValue, forKey: "location")
}
}
1 ответ
CKRecord - это то, что будет возвращено методами CloudKit. Это не может быть проанализировано в вашем testCKRecordClass (easilly). Таким образом, вы можете использовать это только для создания CKRecord для записи в CloudKit.
RecordType может быть инициирован только конструктором CKRecord. Может быть, это может сработать, если вы позвоните super.init (recordType)
Похоже, вы хотите использовать способ CloudKit как можно проще. Если это так, то я могу посоветовать вам тоже взглянуть на https://github.com/evermeer/EVCloudKitDao Это удобная библиотека CloudKit, которая будет использовать отражение для анализа и CKRecord.