![](/img/trans.png)
[英]Terminating app due to uncaught exception 'NSInvalidArgumentException'
[英]Terminating app due to uncaught exception 'NSInvalidArgumentException
好的,这是一个有趣的事件...我收到警告: Characters may not respond to 'addHeroType:atX:atY:fromMobTable'
虽然据我所知,我已经正确定义了功能,但是另一双眼睛呢?
这是Characters.h
的定义
-(void) addHeroType:(int)newMobType atX:(int)x atY:(int)y fromMobTable:(Mobdefs*)newMobTable;
这是Characters.m
的函数
-(void) addHeroType:(int)newMobType atX:(int)x atY:(int)y fromMobTable:(Mobdefs*)newMobTable
这里是我在另一个类调用heroFactory(进行调用Characters.h
包括在heroFactory):
[Characters addHeroType:1 atX:location.x atY:location.y fromMobTable:newMobTable];
但是此行导致应用程序由于未捕获的异常而终止-检查调试器,我看到“ NSObject无法识别选择器”
我确信,问题出在为什么我看到一个警告,即即使Character类与定义完全匹配,它也可能无法响应编写的函数调用,这令人感到困惑。
任何帮助,不胜感激。
-(void) addHeroType:(int)newMobType atX:(int)x atY:(int)y fromMobTable:(Mobdefs*) newMobTable
声明为实例方法。
[Characters addHeroType:1 atX:location.x atY:location.y fromMobTable:newMobTable];
但是您在类上将其作为类方法调用。
因此,要么将方法声明为类方法
+(void) addHeroType:(int)newMobType atX:(int)x atY:(int)y fromMobTable:(Mobdefs*) newMobTable
或在实例上调用
Characters *instance = [[[Characters alloc] init] autorelease];
[instance addHeroType:1 atX:location.x atY:location.y fromMobTable:newMobTable];
当然,取决于您的方法要求的范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.