我在下面的第4行发生了一次奇怪的撞车事故。
{
...
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 Text方法时,它只会崩溃。虽然看不出任何错误?
答案 0 :(得分:1)
我想知道,你的方法不应该像这样吗?
-(void)setupRisingText:(int)risingValue withX:(int)xx withY:(int)yy {
//NSLog(@"%d",risingValue+xx+yy);
}
答案 1 :(得分:1)
你对xx
中的yy
和setupRisingText:::
做了什么,他们被视为id(类似于NSObject *
,不完全相同但类似)
因此,访问和处理指向对象(任何对象,而不仅仅是NSObject的子类)的int变量而不是int变量。这是没有类型的任何参数的默认值。
使用
-(void)setupRisingText:(int)risingValue withX:(int)xx withY:(int)yy {
...
}
代替。
顺便说一句,如果您使用NSNumber
,那么这里的问题会更少。