【问题标题】:Get method arguments dynamically in Objective-C在 Objective-C 中动态获取方法参数
【发布时间】:2015-04-19 03:59:30
【问题描述】:

我是 Objective-C 的新手。

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

一些上下文;这是一个简单的计算器程序的 sn-p,看起来与 this thread 的第一篇文章中的非常相似。顾名思义,add 方法将参数添加到整数变量“累加器”,该变量存储最终值。最后,累加器方法简单地返回变量。

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

我见过其他问题(例如thisthis)至少听起来有点像我这样的菜鸟,但我无法加入这些点并找出解决方案。

【问题讨论】:

    标签: objective-c


    【解决方案1】:

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

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

    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]);
    

    【讨论】:

    • 这是有道理的。不幸的是,我的声誉还不够高,无法对您的回复进行投票,但感谢您的快速回复,肯!真的很感激。
    猜你喜欢
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多