目的はSCNNodeをサブクラス化することです。 class docsによれば、init(geometry geometry: SCNGeometry?)
は指定された初期化子です(convenience
キーワードはリストされていません)。このコードは、スーパークラスの指定された初期化子を呼び出すのではありませんか?Swift:コードがそうであっても "スーパークラスの指定された初期化子を呼び出さなければなりません"エラー
Xcodeに次のエラーが表示されるのはなぜですか?
は、スーパークラスの指定イニシャライザを呼び出す必要がありますあなたも
TRY)(self.initを呼び出す前に、あなたのPreviewNodeのプロパティにアクセスしようとしていることがある問題
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こんにちは、あなたは答えとして投稿し、指定されたイニシャライザを呼び出しているように見えてもエラーが発生する理由を説明できますか?ありがとう! – Crashalot
@LeoDabusはあなたのアプローチを以前に試みたと付け加えておかなければならず、動作しますが、なぜエラーが発生するのか理解したいと思っています。 – Crashalot
なぜ賛成投票ですか? – Crashalot