Mục đích là để phân lớp SCNNode. Theo số class docs, init(geometry geometry: SCNGeometry?)
là trình khởi tạo được chỉ định (không có từ khóa nào được liệt kê là convenience
), vì vậy mã này không gọi trình khởi tạo được chỉ định của siêu lớp của nó?Swift: "Phải gọi một initializer được chỉ định của superclass" lỗi mặc dù mã đang làm như vậy
Tại sao Xcode hiển thị lỗi sau?
Phải gọi một initializer được chỉ định của SCNNode lớp cha
class PreviewNode: SCNNode {
// Constants
let PreviewNodeColor = gRedColor
let Size = CGFloat(1.0)
let ChamferRadius = CGFloat(0.0)
override init() {
let previewBox = SCNBox(width: Size, height: Size, length: Size, chamferRadius: ChamferRadius)
previewBox.firstMaterial!.diffuse.contents = PreviewNodeColor
previewBox.firstMaterial!.transparency = 0.2
previewBox.firstMaterial!.specular.contents = UIColor.whiteColor()
super.init(geometry: previewBox)
}
}
@LeoDabus hi bạn có thể đăng câu trả lời và giải thích tại sao lỗi xảy ra mặc dù nó có vẻ đang gọi một trình khởi tạo được chỉ định không? cảm ơn! – Crashalot
@LeoDabus nên có thêm rằng chúng tôi đã thử cách tiếp cận của bạn trước đây, và nó hoạt động nhưng muốn hiểu tại sao lỗi xảy ra. – Crashalot
Tại sao bỏ phiếu xuống? – Crashalot