【问题标题】:Getting an int out of NSConcreteValue / NSValue从 NSConcreteValue / NSValue 中获取 int
【发布时间】:2012-06-26 18:10:34
【问题描述】:

我正在尝试在 NSValue / NSConcreteValue 实例中提取一个 int。我试图以这种方式投射它们,但它不起作用:

    NSValue *toValue = (NSValue *)someValue;
    NSNumber *toNumber = (NSNumber*)toValue;
    int final = [toNumber intValue];

我也尝试过使用getValue,但这对我也不起作用。

【问题讨论】:

  • someValue 原来是什么?你为什么要把它投射到NSValue?当您说“没用”时,您收到了什么错误?

标签: ios ios5 core-foundation nsvalue


【解决方案1】:

您确定其中保存了一个 int 吗?如果是,您可能会得到它:

int final = 0;
[someValue getValue:&final];

你知道你可以用 NSValue 询问它的类型

[value objCType]

返回一个 const char *

干杯,约尔格

【讨论】:

  • 当我这样做时,我似乎得到了一个 EXEC_BAD_ACCESS 错误,虽然当我 NSLog final 时,我得到了正确的 int 值。
  • int *final; [someValue getValue:final]; 有效吗?然后,您将通过 f.e. 获取 int。 NSLog(@"%d",*final) ...
  • NSLog(@"%s", [value objCType]); 实际打印的是什么?
  • 好的,我知道这里有什么问题,我得到一个{CGPoint=ff} 作为objCType 的结果。我正在处理动画,但没有意识到最终值将是 CGPoint,而不是单个数字。
  • 投射到CGPoint 似乎已经解决了所有问题,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
相关资源
最近更新 更多