iOS NSNumber intValue EXC_BAD_ACCESS
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
int num = 5;
[viewController functionA:[NSNumber numberWithInt:num-1]];
}
-(void) functionA: (NSNumber*) indexNumber{
int hi = [indexNumber intValue];
}
viewController是一个自定义UIViewController类的实例。 functionA是该类中的一个函数。 touchesEnded在另一个类中。iOS NSNumber intValue EXC_BAD_ACCESS
我得到EXC_BAD_ACCESS。在线搜索后,似乎它可能是一个释放/分配错误,但我无法弄清楚。
OK,两件事情:
你永远有你的NSNumber,这是不相关的明确的所有权,因为
的viewController是最有可能为零。你为什么要引用这样的一个类,如果你可以使用self并保存一些额外的字符?如果该函数确实在另一个类中,请在运行和调用方法之前检查是否已分配并初始化该函数。你的崩溃可能与所说的额外类有关,比你的NSNumber更多。
当我在调试器中一步一步地完成调用时,它成功地调用了函数A.它只是试图执行intValue函数而崩溃。 – user1120008 2012-02-29 04:56:30
在方法中的intValue调用之前放置一个NSLog行,并检查indexNumber变量是否为零。 – CodaFi 2012-02-29 04:57:35
我做到了,不是零。 – user1120008 2012-02-29 05:03:41
numberWithInt看起来像它返回一个autorelease'd值。你可以致电保留,还是你使用ARC? – CodaFi 2012-02-29 04:48:48
什么是viewController ..? – Kamarshad 2012-02-29 04:50:38