NetNewsWire/Frameworks/Account/CloudKit/CloudKitRecordConvertable.swift
2020-03-22 16:35:03 -05:00

34 lines
781 B
Swift

//
// CloudKitRecordConvertable.swift
// Account
//
// Created by Maurice Parker on 3/21/20.
// Copyright © 2020 Ranchero Software, LLC. All rights reserved.
//
import Foundation
import CloudKit
protocol CloudKitRecordConvertible {
static var cloudKitRecordType: String { get }
static var cloudKitZoneID: CKRecordZone.ID { get }
var cloudKitPrimaryKey: String { get }
var recordID: CKRecord.ID { get }
var cloudKitRecord: CKRecord { get }
func assignCloudKitPrimaryKeyIfNecessary()
}
extension CloudKitRecordConvertible {
public static var cloudKitRecordType: String {
return String(describing: self)
}
public var recordID: CKRecord.ID {
return CKRecord.ID(recordName: cloudKitPrimaryKey, zoneID: Self.cloudKitZoneID)
}
}