进入前景后UIImage无法正确读取

时间:2017-11-23 19:44:42

标签: ios swift uiimageview

我正处于一个真正粗暴的境地,试图压制这个错误。 在一个完美的世界里,我可以追求成功"按钮,它播放声音和振动,并在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设置为它们的图像。

1 个答案:

答案 0 :(得分:0)

我使用解决方法修复了我的问题。我停止检查UIImageView的内容(由于某些原因它没有工作),而是使用UserDefaults来查看图像应该是什么。

我在UserDefaults中为所有可能的图像设置了一个值,然后检查默认值是什么。