2

私はobjective-c(apple経由)を学習していて、メソッドの構文を説明する部分を終えたところです。

私は、2つの数値を追加する「ヘルパー」クラスで非常に単純なメソッドを作成することにしました...

インターフェイス...

+ (int)addTwo:(int)num1 secondNum:(int)num2;

実装...

+ (int)addTwo:(int)num1 secondNum:(int)num2 {
    return num1+num2;
}

利用方法...

int test = [MyClass addTwo:1 secondNum:2];

今私の問題はこれです。

すべてがコンパイルされ、構文的に正しいですが、私の意見では、メソッドの使用法は非常に厄介であり、私の意見では、次のようなものでなければなりません...

int test2 = [MyClass addTwo:firstNum:(1)secondNum:(2)]

基本的に、1が最初の数字で、2が2番目の数字であることを説明する上で、より冗長なものです。

これを書いていると、「addTo:1、thisNumber:2」のような、より明確なものを書くことができることがわかりますが、重要なものが欠けているか、レッスンが試みていたものを理解していませんでした。教えるために。

私はJavaに慣れているので、これの多くはいくつかの点で新しいものです。これがObjective Cコードの記述方法である場合、それはまったく問題ありませんが、何かを見逃していないことを確認したかっただけです。

前もって感謝します。

4

2 に答える 2

2

Objective Cメソッドの命名には、慣れるまでに時間がかかります。アイデアは、最初のパラメーターの説明をメソッドの名前に「接着」することです。

+ (int)addFirstNum:(int)num1 toSecondNum:(int)num2 {
    return num1+num2;
}

セレクターの名前を、あなたが合理的だと思う限り英語に近づけるようにするのが目的です。この場合、セレクターの名前はでaddFirstNum:toSecondNum:、英語では「OK」と表示されます。

于 2013-01-05T04:55:52.780 に答える
0
int test2 = [MyClass addTwo: firstNum:(1) secondNum:(2)]

この提案では、変数名として扱いfirstNumますsecondNum。それは間違いです。

Objective-Cでは、メソッド名は+addFirstNum:secondNum:であり、コロンが次の場合に渡されるパラメーターは次のとおりです[MyClass addFirstNum:1 secondNum:2]。ただし、変数名のようなものはありません。

Pythonのような名前付きパラメーターを使用する言語ではaddNums(first = 1, second = 2)、これはと同じaddNums( second = 2, first = 1)ですが、Objective-Cでは、コロンの位置によって定義されます。メソッドの名前は変更されません。

于 2013-01-05T04:55:18.077 に答える