Objective Cでは、カスタムinitメソッドはスーパークラスの指定された初期化子を呼び出す必要があります。NSViewのサブクラスの次のカスタムinitメソッドについて考えてみます。
- (void)initWithFrame:(CGRect)aFrame andName:(NSString *)aName {
if(self = [super initWithFrame:aFrame]){
//set up object
}
}
ただし、MacRubyはsuper
キーワードのみを提供し、スーパークラスで同じメソッドを呼び出そうとします。ただし、これはカスタム初期化子であるため、スーパークラスにはそのようなメソッドはありません。
これを解決する標準的な方法は何ですか?私はこの質問を見ました:MacRubyカスタム初期化子ですが、答えをよく理解しているとは言えません。また、広く受け入れられている解決策ではないようです。MacRubyは、その投稿が書かれたときよりも数年古いので、より明確で標準的なソリューションが存在することを望んでいます。