Skip to content

Instantly share code, notes, and snippets.

@cristibaluta
Created April 23, 2017 10:25
Show Gist options
  • Save cristibaluta/5669f0d659735cba25033a5a18a56fe0 to your computer and use it in GitHub Desktop.
Save cristibaluta/5669f0d659735cba25033a5a18a56fe0 to your computer and use it in GitHub Desktop.
extension CloudKitRepository {
func cktaskOfTask (_ task: Task, completion: @escaping ((_ ctask: CKRecord?) -> Void)) {
let predicate = NSPredicate(format: "objectId == %@", task.objectId as CVarArg)
let query = CKQuery(recordType: "Task", predicate: predicate)
privateDB.perform(query, inZoneWith: customZone.zoneID) { (results: [CKRecord]?, error) in
if let result = results?.first {
completion(result)
} else {
completion(nil)
}
}
}
fileprivate func tasksFromCKTasks (_ cktasks: [CKRecord]) -> [Task] {
var tasks = [Task]()
for cktask in cktasks {
tasks.append( taskFromCKTask(cktask) )
}
return tasks
}
fileprivate func taskFromCKTask (_ cktask: CKRecord) -> Task {
return Task(lastModifiedDate: cktask["modificationDate"] as? Date,
startDate: cktask["startDate"] as? Date,
endDate: cktask["endDate"] as! Date,
notes: cktask["notes"] as? String,
taskNumber: cktask["taskNumber"] as? String,
taskTitle: cktask["taskTitle"] as? String,
taskType: TaskType(rawValue: (cktask["taskType"] as! NSNumber).intValue)!,
objectId: cktask["objectId"] as! String
)
}
fileprivate func idsFromCKRecordIds (_ ckrecords: [CKRecordID]) -> [String] {
var ids = [String]()
for ckrecord in ckrecords {
ids.append( ckrecord.recordName )
}
return ids
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment