我正处于一个真正粗暴的境地,试图压制这个错误。 在一个完美的世界里,我可以追求成功"按钮,它播放声音和振动,并在UIImageView中更改图像。这完全有效,直到我按下主页按钮并重新打开应用程序。这种故障总是会发生。
以下是相关代码:
@IBAction func Success(_ sender: Any) {
var boxNum = 1
generator.impactOccurred()
if "" == defaults.value(forKey: "frequency") as? String{
//One of 2 frequencies. It doesn't make a difference, however because the glitch always happens.
playVictorySound()
let formatter = DateFormatter()
for box in Boxes{
if box.image == UIImage(named:"blank.png"){
if "" == defaults.value(forKey: mode) as? String{
formatter.dateFormat = "dd.MM.yyyy"
let activeDate = Date()
defaults.set(Date(), forKey: "dateLast")
print(activeDate)
}
box.image = UIImage(named:"Arm.png")
defaults.set("Active", forKey: "boxState" + String(boxNum))
print("Active set for" + " boxState" + String(boxNum))
if "" == defaults.value(forKey: "mode") as? String{
successButton.isHidden = true
failButton.isHidden = true
}
break
}
else{
boxNum = boxNum + 1
print ("Added 1 to" + String(boxNum))
}
}
}
注意:此部分具有在按下按钮期间设置的用户默认值。
当重新打开应用程序时,成功按钮会播放声音(需要),并振动手机(也需要),但图像不会更新。事实上,控制台会打印一系列其他案例。
添加1到38
添加1到39
添加1到40
Etc等。
当设置任何其他模式或频率时,也会出现毛刺。我专注于修复此案例,因为我认为我也能够修复其他案例。 导致这种情况的根本原因是什么?我相信这可能是因为要么某些东西没有留在记忆中,但我无法弄明白为什么。非常感谢你。
编辑:好的,我设置了#34;空白"图像到自拍,应用程序加载" blank.png"每个广场。上面代码的另一部分似乎有问题。我添加了print语句以帮助一点,if语句是失败的部分,但是,ImageViews都将blank.png设置为它们的图像。
答案 0 :(得分:0)
我使用解决方法修复了我的问题。我停止检查UIImageView的内容(由于某些原因它没有工作),而是使用UserDefaults来查看图像应该是什么。
我在UserDefaults中为所有可能的图像设置了一个值,然后检查默认值是什么。