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
}
}
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
}
}