Search code examples
iosswiftnsuserdefaultsmessaginguserdefaults

UserDefaults not working with MSMessagesAppViewController


I am trying to save data to UserDefaults using an UIAlertController , but the code fails to retrieve the data.

Retrieve the Data

    func displayCreatedPhrases(){
    phrases = uDefaults.stringArray(forKey: "createdPhrases") ?? [String]()
    print(phrases)
   }

Setting the Data

 self.uDefaults.set(textfield.text, forKey: "createdPhrases")
 self.uDefaults.synchronize()
 print("Saved the data!")
 self.phraseTableView.reloadData()

Solution

  • You are setting the string as a value for key 'createdPhrases' and then asking uDefaults to return an array of string?

    func displayCreatedPhrases() {
        phrases = uDefaults.value(forKey: "createdPhrases") as? String
        print(phrases)
    }
    

    The above code should work for you. Also no need to use below line (Link to UserDefaults synchronize)

    self.uDefaults.synchronize()