Reputation:
I can save and retrieve deleted mails number (such as like Integer value) in UserDefaults
. Suppose if I deleted some more mails then I have to add/increase that saved UserDefaults
value and if I retrieve it should come total deleted mails number. ->> Here numEmails
is deleted mails number(Integer).
UserDefaults.standard.set(numEmails, forKey: "NumberofMailsDeleted") //Saving
var numMailsDeleted = UserDefaults.standard.integer(forKey: "NumberofMailsDeleted") //Retriving
print("I've deleted \(numMailsDeleted) mails") //Printing`
I will explain this scenario with other example ->> I want to save vehicles incoming (number of vehicles inside) into the parking area (i.e. the UserDefaults
saved value is changing according to the cars incoming). If I retrieve it should come updated value of incoming don't think about outgoing, I don't need outgoing
Upvotes: 1
Views: 4289
Reputation: 306
var deletedEmail: Int { get { return UserDefaults.standard.integer(forKey: "emailsDeleted") } set { UserDefaults.standard.set( newValue forKey:"emailsDeleted")} }
Using computed property you can simplify it to something like this. newValue is a keyword you can use inside set property. Do not declare newValue !!. Just try the code and let me know.
Upvotes: 1
Reputation: 465
You can use the set(Int, forKey: String) method of UserDefaults:
//Get
let deletedMailsCount = UserDefaults.standard.integer(forKey: "NumberofMailsDeleted")
//Update deletedMails count
deletedMailsCount += 1;
//Set
UserDefaults.standard.set(deletedMailsCount, forKey: "NumberofMailsDeleted")
UserDefaults.standard.synchronize()
Upvotes: 2