Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。クラスを使って円を作りたいのですが、エラーが出てしまいます。読む限り、このクラス用に作られたものを指定しろと言われているようなのですが、使いたてでなにぶんわかりません。短いですがこのようなコードになっています。'SKShapeNode'となっています。私は一体何を指定してあげれば良いのでしょうか、ご回答よろしくお願いします。票1別回答者さんから、クラスの継承についてと、イニシアライザに関する解説がありましたが、ここでは実践的に「じゃあどう書き直せばいいの?」な話をしたいと思います。Initializer。別回答者さんは「指名イニシアライザ」と訳しています)を上書き(とくに意図がない場合は、同時に継承(Delegate)も)します。Initializer。別回答者さんの訳では「利便イニシアライザ」)の2種類がありますが、リファレンス上では、指示子がないのが指定イニシアライザ、convenience指示子があるのが、簡便イニシアライザです。SKShapeNodeのリファレンスには、簡便イニシアライザしかありませんが、親クラスのSKNodeにある指定イニシアライザが、そのままSKShapeNpdeの指定イニシアライザとなります。NSCoder)の二つがあります。Xcodeの「改善提案」で入力されるコードをそのまま使っています。}}さて、init()は指定イニシアライザとして使ってしまいましたから、希望である簡便イニシアライザとしては、使えなくなってしまいました。妥協をして、塗りつぶし色を指定して初期化するイニシアライザを考えることにしましょう。.red)というコードで、新しいノードを作ることができます。Shooter()というコードで新しいノードを作ることはあきらめたくないという場合は、指定イニシアライザinit()を意図通りに実装することを考えます。CGFloat)を使わずに、地道にプロパティpathを編集して、円を描きます。個の銅バッジcgPathを用いることで問題なく動くようになりました感謝します。initializer(利便イニシャライザ)の概念は避けて通るわけにはいきません。出来るだけきちんとした記述をしている参考書籍などを探して、しっかり勉強してください。(残念ながらSwiftで使われている用語には決定版の定訳と言うものがありませんので、括弧内の訳語は書籍やサイトでは別の訳語が当てられているかもしれません。)ここでは原典のSwift本から。initializer.(拙訳)クラス型の初期化委譲...ルール1指名イニシャライザでは、直接の親クラスの指名イニシャライザを呼ばなければいけないルール2利便イニシャライザでは、同クラスの他のイニシャライザを呼ばなければいけないルール3利便イニシャライザでは、最終的には指名イニシャライザを呼ばなければいけないご質問のコードの場合、Shooterクラスのイニシャライザinit()にはconvenienceキーワードがないため、「指名イニシャライザを宣言している」ことになるので、その中で「直接の親クラスの指名イニシャライザを呼ばなければいけない」と言うルール1が適用されることになるのですが、init(circleOfRadius:)は指名イニシャライザではないため、ルール違反でエラーになっているわけです。対処として、指名イニシャライザを呼ぼうと思っても、SKShapeNodeクラスには殆ど指名イニシャライザが見つからないため、ルール1を満たすことはできない、と言うことになってしまいます。あなたの今回のコードでしたら、ルール2を満たすことはできそうです。}}init()を利便イニシャライザにして、継承したinit(circleOfRadius:)を呼んでやることで「同クラスの他のイニシャライザを呼ばなければいけない」と言うルールが守れていることになります。上記のようなサブクラス化を可能とするためには、「どんな条件でどれだけの範囲のイニシャライザが継承されるか」のルールも、よく知っておかないといけないのですが、「指名イニシャライザを一つも定義しないと指名イニシャライザも利便イニシャライザも全部継承される」と言うルールがあるため、今回はなんとかなりますが、もう少しあれこれコードを付け足すと、うまくいかない場合も出てくるかもしれません。Swiftのこの辺りのルールは、よく使われているオブジェクト指向言語の中でも、かなり厳しくわかりにくい方に入るように思います。なにかよくわからない点、うまくいかない点があれば再度ご質問ください。個の銅バッジSKShapeNodeはなかなかややこしいのですね、SKSpriteNodeの時も確かにsuper.initで指名イニシャライザ(?)を求められて困惑した記憶があります。お気遣いもいただき感謝です。Appleのドキュメントもやはり英語を頑張ってみようと思います。さん、コメントありがとうございます。SKShapeNodeに限らず、Swiftでサブクラスのイニシャライザは(たまたまうまく行った時は気がつかないのですが)かなりややこしいですね。調べてもよくわからない場合には、Q&Aサイトもうまく活用してください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。to~のエラーが出てしまう。'dispatch_get_main_queue()'】とエラーが出てしまいます。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。