嘿,伙计们,在我的应用程序中,用户点击了一个名为showfunfact()的按钮,该按钮通过一个字符串数组移动他们。当用户从多任务中删除应用程序或关闭手机时,我希望保存用户所在的位置,然后当重新加载时,可以从中断的位置取回

var TechfactIndex = 0
let TechnologyfactBook = TechFactBook()

override func viewDidLoad() {
    super.viewDidLoad()
    let defaults = NSUserDefaults.standardUserDefaults()
    TechfactIndex = NSUserDefaults.standardUserDefaults().integerForKey("ByteLocation")
    defaults.setObject(TechfactIndex, forKey: "ByteLocation")
}

@IBAction func showFunFact() {
    if ( UIApplication.sharedApplication().applicationIconBadgeNumber != 0){
        UIApplication.sharedApplication().applicationIconBadgeNumber = 0
    }

    if (TechfactIndex >= TechnologyfactBook.TechfactsArray.count) {
        self.TechfactIndex = 0
    }

    TechByteLabel.text = TechnologyfactBook.TechfactsArray[TechfactIndex]
    TechfactIndex++
}

override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)
    NSUserDefaults.standardUserDefaults().setInteger(TechfactIndex, forKey: "ByteLocation")
    NSUserDefaults.standardUserDefaults().synchronize()
}

最佳答案

问题是viewDidDisappear:与你的规格无关,它不是“当用户从多任务中删除应用程序或关闭手机时”。电话铃响时不叫它。当用户点击home按钮时不调用它。这无关紧要。你把代码放错地方了。
你要做的是在应用程序停用时注册收听。这是将信息写入用户默认值的时刻。

10-08 16:58