let dx = line.frame.midX - other.frame.midX
产生以下异常:
不明确地使用运营商' - '
以下是该行&其他课程'对象类型声明:
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中跳转到定义(⌘ + click)时,frame
对象将我带到frame
属性UIView
代替SKNode
。
我没有正确地进行子类化吗?如何摆脱不明确使用运算符异常错误?
答案 0 :(得分:3)
出现问题的原因是您在创建这些对象的类中既不导入UIKit
也不导入SpriteKit
。
例如,如果您有GameViewController
类:
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
}
}