Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save cristibaluta/ce69a5a496e6619143a639ec55105e98 to your computer and use it in GitHub Desktop.
Save cristibaluta/ce69a5a496e6619143a639ec55105e98 to your computer and use it in GitHub Desktop.
import CloudKit
public extension UserDefaults {
var serverChangeToken: CKServerChangeToken? {
get {
guard let data = self.value(forKey: "ChangeToken") as? Data else {
return nil
}
guard let token = NSKeyedUnarchiver.unarchiveObject(with: data) as? CKServerChangeToken else {
return nil
}
return token
}
set {
if let token = newValue {
let data = NSKeyedArchiver.archivedData(withRootObject: token)
self.set(data, forKey: "ChangeToken")
self.synchronize()
} else {
self.removeObject(forKey: "ChangeToken")
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment