在Objective-C中动态获取方法参数

时间:2015-04-19 03:59:31

标签: objective-c

我是Objective-C的新手。

[deskCalc add: 55]; NSLog(@"After adding %f to accumulator, accumulator is :%f", 55, [deskCalc accumulator]);

某些背景;这是一个简单的计算器程序的片段,看起来与this thread中第一篇文章中的相似。顾名思义,add方法将参数添加到整数变量“accumulator”中,该变量存储最终值。最后,accumulator方法只返回变量。

我的问题是:不是必须在字符串之后手动输入参数(在本例中为55),是否可以使用代码引用传递给add方法的任何参数(动态)?

我已经看到其他问题(例如thisthis),至少声音有点类似于像我这样的菜鸟,但我还没能加入点并找出解决方案。

1 个答案:

答案 0 :(得分:2)

通常,您无法从之前的消息发送表达式中检索参数。

一个简单的解决方案是将值放在变量中并在两个位置引用它:

float addend = 55;
[deskCalc add: addend];
NSLog(@"After adding %f to accumulator, accumulator is :%f", addend, [deskCalc accumulator]);

IF deskCalc对象经过特殊编码以跟踪上一个操作及其操作数,您可以询问它的值。在这里,我假设在类上存在lastAddend属性并使用它:

[deskCalc add: 55];
NSLog(@"After adding %f to accumulator, accumulator is :%f", [deskCalc lastAddend], [deskCalc accumulator]);