0

我建立了一个简单的记忆游戏,假设用户点击一张卡片,直到所有卡片都配对。但是,我的问题是,当用户点击两张卡时,游戏会在 2 秒后崩溃“在展开时意外发现 nil”。

我已经仔细检查了所有图像并确保它们正确连接,但我仍然收到错误消息。我的代码如下:

@IBOutlet weak var frontImageView: UIImageView!
@IBOutlet weak var backImageView: UIImageView!

var card: Card?{
    didSet {
        guard let card = card else {return}
        frontImageView.image = card.image
    }
}

fileprivate(set) var shown: Bool = false

//Mark:- Card function properties

func showCard(_ show: Bool, animated: Bool){
    frontImageView.isHidden = false
    backImageView.isHidden = false //This is where i get the error.
    shown = show

    if animated {
        if show{
            UIView.transition(from: backImageView, to: frontImageView, duration: 0.3, options: .transitionFlipFromBottom, completion: { (finished: Bool) in
            })
        } else {
            UIView.transition(from: frontImageView, to: backImageView, duration: 0.3, options: .transitionFlipFromBottom, completion: { (finished: Bool) in
            })
        }
    } else {
        if show{
            bringSubview(toFront: frontImageView)
            backImageView.isHidden = true
        } else {
            bringSubview(toFront: backImageView)
            frontImageView.isHidden = true
        }
    }
4

1 回答 1

0

至少您的一个网点是零。有很多原因,例如:您忘记将您的插座连接到您的 xib/storyboard 文件,您之前调用showCardviewDidLoad,您纯粹从代码创建视图,而不是从 storyboard/xib 文件实例化。

像@dylanthelion 建议您应该调试代码并查看您的代码堆栈。您还应该在此处粘贴更多代码。

在您的代码中保留启用的异常断点: https ://www.youtube.com/watch?v=AvnqBjzEKuk

于 2017-02-13T01:57:35.717 回答