![](/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.