NSUserDefaults are written to disk periodically by the system, but there are times when you want your changes saved immediately, such as when the app transitions into background state. This is done by calling synchronize.

Swift

NSUserDefaults.standardUserDefaults().synchronize()

Objective-C

[[NSUserDefaults standardUserDefaults] synchronize];