【问题标题】:NSInvocation with value type arguments带有值类型参数的 NSInvocation
【发布时间】:2015-01-06 23:49:58
【问题描述】:

是否可以将 NSInvocation 与值类型参数一起使用?

目前我们可以这样做:

[invocation setArgument:&param1 atIndex:2];

但我们希望第一个参数是值类型,例如 int。

当我查看在调试器中传递给目标方法的变量时,它是一些像 1.367481856920029E+302 这样的垃圾值 - 这似乎是将对象的地址转换为 int。

【问题讨论】:

  • 你就是这样做的,param1 是一个整数或任何你想要的原始数据类型。图形调试器有时会出错,请特别注意,如果您使用断点,它不会显示赋值的值,直到 包含赋值的行之后。

标签: ios objective-c nsinvocation


【解决方案1】:

如果我得到你在找什么,你只是想传递一个 int 作为第一个参数?

这个问题的解决方案应该是:

NSInteger param1 = 2;
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature];
[invocation setArgument:&param1 atIndex:2];

如果它没有回答您的问题,请添加更多详细信息/代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 2014-08-31
    • 2014-10-06
    • 2015-05-17
    • 2018-08-07
    相关资源
    最近更新 更多