我在 Swift 中使用 Xcode 6,但收到错误“后缀‘!’的操作数”应该有可选类型;类型是“CGVector””在我的代码中说我必须删除!但是,当我这样做时,我收到错误“可选类型‘CGVector’的值?”未打开;您是否想使用“!”或者 '?'?”这迫使我再次添加它。
我不知道该怎么做,这是产生错误的行,问题出在属性“velocity”上:
if(Utils.getNetVec(physicsBody?.velocity!, gravity: gravity, signs: true).dy > CGFloat(0)) {
如何解决这个问题?
最佳答案
如果你在 physicalBody?.velocity
两边加上括号,那么它就可以工作
if(Utils.getNetVec((physicsBody?.velocity)!, gravity: gravity, signs: true).dy > CGFloat(0)) {
这是因为 velocity
本身不是可选的,但它是可选的,因为它是通过可选链访问的。可选需要展开,但仅仅在后面放置 !
还不够,因为它绑定(bind)到 velocity
。添加括号会导致 !
应用于可选链接表达式的结果。
关于swift - "Operand of postfix '! ' should have optional type; type is ' CG向量 '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26268687/