Skip to content

Instantly share code, notes, and snippets.

@brocoo
Created July 23, 2015 11:34
Show Gist options
  • Save brocoo/a193c03bf3c1d3480106 to your computer and use it in GitHub Desktop.
Save brocoo/a193c03bf3c1d3480106 to your computer and use it in GitHub Desktop.
Perform closure once for a given key
// MARK: - NSUserDefaults
extension NSUserDefaults {
class func performOnceForKey(key: String, perform: () -> Void, elsePerform: (() -> Void)? = nil) {
let once = self.standardUserDefaults().objectForKey(key)
self.standardUserDefaults().setBool(true, forKey: key)
self.standardUserDefaults().synchronize()
if once == nil { perform() }
else { elsePerform?() }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment