Как определить класс 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.

Другие вопросы по тегам