insidegui / cloudkitcodable Goto Github PK
View Code? Open in Web Editor NEWAn encoder and decoder for CKRecord
License: BSD 2-Clause "Simplified" License
An encoder and decoder for CKRecord
License: BSD 2-Clause "Simplified" License
Currently the framework only builds for macOS.
Add support for
Is it possible to add support for custom keys? In CloudKit I have a property like "archived" but I'd want to define it as let isArchived: Bool
Do I have an optional array type field such as [Int]? How to fix this error
As mentioned on the readme, nested values are not supported yet. They would have to be encoded as CKReference
.
Hey Gui,
It would be great to have access to the system fields typed data of the CKRecord to provide the capability to the following workflows:
Do you think this would compliment your library? I assume the above use cases would be commonly desired. Here is some quick and dirty on what I was thinking.
public struct CloudKitRecordSystemFields {
private let metaRecord: CKRecord
public var recordID: CKRecord.ID {
metaRecord.recordID
}
public var recordType: CKRecord.RecordType {
metaRecord.recordType
}
public var creationDate: Date? {
metaRecord.creationDate
}
public var creatorUserRecordID: CKRecord.ID? {
metaRecord.creatorUserRecordID
}
public var modificationDate: Date? {
metaRecord.modificationDate
}
public var lastModifiedUserRecordID: CKRecord.ID? {
metaRecord.lastModifiedUserRecordID
}
public var recordChangeTag: String? {
metaRecord.recordChangeTag
}
public init(record: CKRecord) {
self.metaRecord = record
}
}
extension CloudKitRecordSystemFields {
// Discussion: Static factory, convenience initializers, or both?
public init(coder: NSCoder) {
guard let metaRecord = CKRecord(coder: coder) else {
// NOTE: Might have to use generics to infer recordType if coder initializer of the metaRecord fails if returning a default value instead of throw or nil
fatalError()
}
self.metaRecord = metaRecord
}
public static from(coder: NSCoder) -> CloudKitRecordSystemFields {
// TODO: Implement this signature
fatalError()
}
public init(data: Data) {
// TODO: Implement this signature
fatalError()
}
public static func from(data: Data) -> CloudKitRecordSystemFields {
// TODO: Implement this signature
fatalError()
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.