user8769899
user8769899

Reputation:

Save and Add integer value in UserDefaults and retrieve after adding the value

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

Answers (2)

Vimal
Vimal

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

Indra Mohan
Indra Mohan

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

Related Questions