2013-04-08 46 views
0

我在下面的第4行有一个奇怪的崩溃。Obj-c EXC_BAD_ECCESS错误

{ 
... 
int exp = [[resourceCompletionReward objectAtIndex:experienceD] integerValue]; 

int xx = mySprite.x; 
int yy = mySprite.y; 

[self setupRisingText:exp withX:xx withY:yy]; 
... 
} 

-(void)setupRisingText:(int)risingValue withX:xx withY:yy { 
    ... 
} 

当它试图运行setupRising文本方法时,它只是崩溃。虽然看不到任何错误?

+0

你能发布错误信息吗? – tkanzakic 2013-04-08 07:02:58

+0

显示setupRisingText的完整代码:也尝试使用断点。 – 2013-04-08 07:04:09

+0

你得到编译时错误或运行时错误? – 2013-04-08 08:24:39

回答

1

您在setupRisingText:::xxyy做他们被视为ID(类似NSObject *,不完全是这样的,但类似)

所以不是int变量的指针到物体(任何物体什么都,不仅仅是NSObject的子类)被访问和处理。这是没有类型的任何参数的默认值。

使用

-(void)setupRisingText:(int)risingValue withX:(int)xx withY:(int)yy { 
    ... 
} 

代替。

顺便说一句,如果你使用NSNumber你将有较少的问题在这里。

+0

我不明白为什么没有数据类型会被视为'id'?和NSNumber **不能**在这里使用。 NSNumber只能用于json,coredata等你需要包装的地方。 – 2013-04-08 07:22:35

+0

如果没有给出类型,则id是编译器的默认值。句号。 – 2013-04-08 07:42:04

1

我想知道,你的方法不应该是这样吗?

-(void)setupRisingText:(int)risingValue withX:(int)xx withY:(int)yy { 
    //NSLog(@"%d",risingValue+xx+yy); 
}