Clearing NSUserDefaults

You can remove the application’s persistent domain like this: NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain]; In Swift 3 and later: if let bundleID = Bundle.main.bundleIdentifier { UserDefaults.standard.removePersistentDomain(forName: bundleID) } This is similar to the answer by @samvermette but is a little bit cleaner IMO.

how to save and read array of array in NSUserdefaults in swift?

The question reads “array of array” but I think most people probably come here just wanting to know how to save an array to UserDefaults. For those people I will add a few common examples. String array Save array let array = [“horse”, “cow”, “camel”, “sheep”, “goat”] let defaults = UserDefaults.standard defaults.set(array, forKey: “SavedStringArray”) Retrieve … Read more

Using NSUserDefaults on arrays

You need to convert it to NSData using NSKeyedArchiver before storing it to NSUserDefaults, try like this: update: Xcode 11.4 • Swift 5.2 or later import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let list = List(name: “Student”) list.answers = [Answer(english: “english answer”, chinese: “中文回答”)] let data = (try? NSKeyedArchiver.archivedData(withRootObject: [list], requiringSecureCoding: … Read more

Save Struct to UserDefaults

In Swift 4 this is pretty much trivial. Make your struct codable simply by marking it as adopting the Codable protocol: struct Song:Codable { var title: String var artist: String } Now let’s start with some data: var songs: [Song] = [ Song(title: “Title 1”, artist: “Artist 1”), Song(title: “Title 2”, artist: “Artist 2”), Song(title: … Read more