【问题标题】:Error with NSNumber Category because of NSCFNumber由于 NSCFNumber 导致 NSNumber 类别出错
【发布时间】:2011-05-11 15:34:05
【问题描述】:

我将 WSDL2OBJC 用于 OS X 项目。 WSDL2OBJC 生成的部分代码为 NSNumber 添加了一个类别。当我使用代码时,我尝试在 NSNumber 上调用新方法并收到错误:

+[NSCFNumber xmlNodeForDoc:elementName:]: unrecognized selector sent to class 0x7fff70b6b8c8

我读到 NSNumber 是一个类集群并且有私有类,而 NSCFNumber 是整数类。我怎样才能让它工作?我无法将该类别添加到 NSCFNumber,因为它是一个私有类。相同的代码适用于我拥有的 iPhone 项目。

【问题讨论】:

  • 我得到了这个工作。看起来问题是内存问题。我将 NSNumber 传递给 [NSInvocation setArgument: atIndex:]。它在 iPhone 应用程序中工作,因为我正在创建一个变量并通过引用传递它。我相信它对我不起作用,因为我删除了创建一个单独的 var 而只是做了 [NSNumber numberWithInt:]。
  • 很高兴你解决了它!请考虑花点时间将解决方案作为答案发布并接受;这样问题就不会显示为“未回答”。

标签: cocoa-touch cocoa categories nsnumber class-cluster


【解决方案1】:

我得到了这个工作。看起来问题是内存问题。我将NSNumber 传递给[NSInvocation setArgument: atIndex:]。它在 iPhone 应用程序中工作,因为我正在创建一个变量并通过引用传递它。我相信这对我不起作用,因为我删除了创建单独的 var 并只是做了[NSNumber numberWithInt:]

【讨论】:

  • 我面临同样的问题,但无法解决。你能解释一下是什么导致了这个问题吗?我已经尝试过 [[[NSNumber alloc] initWithInt:] autorelease] 以及 [NSNumber numberWithInt:],但是一旦 setArgument:atIndex: 完成,相同的保留计数变为 -1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多