18

encodeSystemFieldsデータベースでローカルにレコードを保持するときに使用することになっています。

そのデータをエクスポートしたら、逆シリアル化するときに何か特別なことをする必要がありますか?

そのデータ内の情報に基づいて、どのようなシナリオで行動する必要がありますか?

バリエーションとして (前の質問でカバーされていない場合)、この情報は何を防ぐのに役立ちますか? (私が推測するデータの破損)

4

2 に答える 2

0

iOS 15 / Swift 5.5 以降、この拡張機能が役立つ場合があります。

public extension CKRecord {
    var systemFieldsData: Data {
        let archiver = NSKeyedArchiver(requiringSecureCoding: true)
        encodeSystemFields(with: archiver)
        archiver.finishEncoding()
        return archiver.encodedData
    }

    convenience init?(systemFieldsData: Data) {
        guard let una = try? NSKeyedUnarchiver(forReadingFrom: systemFieldsData) else {
            return nil
        }
        self.init(coder: una)
    }
}
于 2021-11-03T16:02:39.203 に答える