我在同一个应用程序中有两种方法
第一个是分数类
-(Fraction *) divide: (Fraction *) f
{
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator * f.denominator
[result reduce];
return result;
}
第二个是在计算器类
-(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 实例变量而不是第二个?是因为它调用了另一个方法 [result reduce] 还是因为它返回了一个值?或者是其他东西?第二种方法似乎只是简单地实例化 Fraction 类型的临时变量结果,而无需初始化或创建内存。
谢谢