0

同じアプリケーションに 2 つのメソッドがあります

最初は分数クラスにあります

 -(Fraction *) divide: (Fraction *) f
 {
 Fraction *result = [[Fraction alloc] init];
 result.numerator = numerator * f.denominator
 [result reduce];
 return result;
 }

2番目は電卓クラスにあります

-(Fraction *) performOperation: (char) op
   {
 Fraction *result;
 switch (op) {
 case '+':
 result = [operand1 add: operand2];
 break;
 .
 .
 .
 .
 etc

break;
}
accumulator.numerator = result.numerator;
accumulator.denominator = result.denominator;
return accumulator;
}

最初のメソッドでは *result インスタンス変数を割り当てて初期化する必要があるのに、2 番目のメソッドでは必要ないのはなぜですか? 別のメソッド [result reduce] を呼び出しているためですか、それとも値を返しているためですか? または、他の何か?2 番目の方法は、メモリの初期化や作成を行わずに、Fraction 型の一時変数の結果をインスタンス化するだけのようです。

ありがとう

4

2 に答える 2