【发布时间】:2012-11-19 17:38:33
【问题描述】:
我在同一个应用程序中有两个方法
第一个在分数类中
-(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 实例变量 在第一种方法中,而不是第二种方法?是不是因为它正在调用另一个方法 [结果减少] 还是因为它返回了一个值?或者是其他东西? 第二种方法似乎只是简单地实例化 Fraction 类型的临时变量结果 无需初始化或创建内存。
谢谢
【问题讨论】:
-
您的代码 sn-ps 不完整。操作数 1 和 2 以及累加器从何而来?
-
operand1 和 2 是计算器类中声明的属性
-
我正在阅读一本书的教程,只是想弄清楚为什么有些 Fraction 对象是在方法内部创建的,而另一些是综合属性。为什么不将结果创建为属性?在本教程中,每个加法、减法、乘法和除法方法都会创建结果对象。为什么不在属性中只做一次?
标签: objective-c ios