SKShapeNode 子类框架元素引用 UIView 而不是 SKNode

SKShapeNode subclass frame element is referencing UIView instead of SKNode

let dx = line.frame.midX - other.frame.midX

产生以下异常:

Ambiguous use of operator '-'

这是一行 & other class' 对象类型声明:

import Foundation
import SpriteKit

class Line: SKShapeNode {
    var plane:Plane!

    init(rect: CGRect, plane: Plane) {
        super.init()
        self.path =  CGPathCreateWithRect(rect, nil)
        self.plane = plane
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

我注意到当我 跳转到定义时 ( + 点击) 在 Xcode 中 frame对象将我带到 UIView 中的 frame 属性 而不是 SKNode

我是不是没class正确?如何摆脱 运算符异常的模糊使用 错误?

出现问题是因为您在创建这些对象的 class 中既没有导入 UIKit 也没有导入 SpriteKit

例如,如果你有,比方说,GameViewController class:

class GameViewController : UIViewController

确保导入上述任一框架:

import UIKit
//or
import SpriteKit

class GameViewController : UIViewController
{

    override func viewDidLoad()
    {
        super.viewDidLoad()
        let line = Line(rect:....) //specify rect 
        let other = Line(rect:....) //specify rect

        let dx = line.frame.midX - other.frame.midX
    }

}