gpt4 book ai didi

ios - 展开可选值时发现 nil

转载 作者:行者123 更新时间:2023-11-28 11:12:40 24 4
gpt4 key购买 nike

您可能会想:“关于此错误的另一篇文章”。是的,在写这个问题之前我一直在查看这个论坛,不幸的是我找不到可以帮助的东西,或者至少我知道当有一个未绑定(bind)的 var 时会出现这个错误。

不过,由于我对此很陌生,所以我需要一些帮助。我正在按照指南制作一个简单的无限横向卷轴游戏。到目前为止一切顺利,但后来我遇到了这个“无效”错误。指南本身没有这个错误。

所以我想可能是因为我使用了较新版本的 xCode 或 iphone 模拟。但我很确定不是那个。

到目前为止我的编码:

import Foundation

class MainScene: CCNode {
weak var hero: CCSprite!

func didLoadFromCCB() {
userInteractionEnabled = true
}

override func touchesBegan(touch: CCTouch!, withEvent event: CCTouchEvent!) {
// This is the error line. I think it is caused by (applyImpulse(ccp(0, 400)) )
hero.physicsBody.applyImpulse(ccp(0, 400))
}
}

我怎样才能简单地解决这个问题?我应该用 applyImpulse 做一个变量吗?我还尝试在 CGPoint (ccp) 和 CCPackage 之间切换,但都没有用。

最佳答案

  weak var hero: CCSprite!

这是非常危险的,很可能是您遇到问题的原因。除了使用几乎总是要避免的 ! 之外,这还与 weak 混合使用。这意味着如果其他 停止指向herothis 变量将变成隐式展开的nil。下次访问它时,您会崩溃。

首先,去掉 !。如果需要,使用?。除此之外,决定它是否真的应该很强大。您在此处显示的任何内容都表明它应该很弱。

关于ios - 展开可选值时发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34027118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com