【问题标题】:Save and Add integer value in UserDefaults and retrieve after adding the value在 UserDefaults 中保存并添加整数值,并在添加值后检索
【发布时间】:2017-11-30 11:48:02
【问题描述】:

我可以在UserDefaults 中保存和检索已删除的邮件编号(例如整数值)。假设如果我删除了更多邮件,那么我必须添加/增加保存的UserDefaults 值,如果我检索它应该是总删除邮件数。 ->> 这里numEmails 是删除的邮件编号(整数)。

UserDefaults.standard.set(numEmails, forKey: "NumberofMailsDeleted") //Saving
var numMailsDeleted = UserDefaults.standard.integer(forKey: "NumberofMailsDeleted") //Retriving
print("I've deleted \(numMailsDeleted) mails") //Printing` 

我将用其他示例解释这种情况 ->> 我想将进入的车辆(里面的车辆数量)保存到停车区(即,UserDefaults 保存的值根据进入的汽车而变化)。如果我检索它应该更新传入的值不要考虑传出,我不需要传出

【问题讨论】:

  • 如果您在保存和检索时没有任何问题,会出现什么问题?
  • 嗨@GaneshManickam,我可以保存一个值,但是如果我在一段时间后删除更多邮件,我如何添加/增加它的值。

标签: ios swift swift3 nsuserdefaults swiftyuserdefaults


【解决方案1】:

可以使用 UserDefaults 的 set(Int, forKey: String) 方法:

//Get
let deletedMailsCount = UserDefaults.standard.integer(forKey: "NumberofMailsDeleted")
//Update deletedMails count
deletedMailsCount += 1;
//Set
UserDefaults.standard.set(deletedMailsCount, forKey: "NumberofMailsDeleted")
UserDefaults.standard.synchronize()

【讨论】:

  • Indra Mohan 谢谢,它一直在增加到 1,但我想从 numEmails 变量中获取每次值。
  • 我添加该代码只是为了让您理解。删除该部分并使用您自己的逻辑来计算已删除的电子邮件。
【解决方案2】:
var deletedEmail: Int { get { return UserDefaults.standard.integer(forKey: "emailsDeleted") } set { UserDefaults.standard.set( newValue forKey:"emailsDeleted")} }

使用计算属性,您可以将其简化为类似这样。 newValue 是可以在 set 属性中使用的关键字。不要声明 newValue !!。 只需尝试代码并告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多