大家好,在我的应用程序中,用户单击了一个名为 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:
与您的规范无关。它不称为“当用户从多任务处理中删除应用程序或关闭手机时”。它不会在电话响起时被调用。当用户点击主页按钮时,它不会被调用。这无关紧要。您将代码放在了错误的位置。
您要做的是注册以在应用停用时收听。那是将信息写入用户默认值的时刻。
关于ios - 如何使用 plist 将用户进度保存在数组 Swift 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149604/