2012-07-02 1 views
1

я запускаю этот код:Получение ошибки NSInternalInconsistencyException «Аргумент должен быть не-ноль»

- (void)unitButtonButtonTapped:(id)sender { 
    [_label setString:@"Last button: Unembossed square"]; 
    MilitaryUnits *target = nil; 
    target = [Peasants militaryUnits]; 
    target.position = ccp(100, 450); 
    [self addChild:target]; 
} 

И я получаю эту ошибку: * Нагрузочного приложение из-за неперехваченное исключение «NSInternalInconsistencyException», причина: «Довод должен быть не-ноль»

это мои .h и .m файлы классов

#import "cocos2d.h" 

@interface MilitaryUnits : CCSprite { 
    int _experience; 
    int _number_of_units; 
    int _stamina; 
    int _armor_level; 
    int _weapon_levell; 
} 

@property (nonatomic, assign) int experience; 
@property (nonatomic, assign) int number_of_units; 
@property (nonatomic, assign) int stamina; 
@property (nonatomic, assign) int armor_level; 
@property (nonatomic, assign) int weapon_levell; 

@end 

@interface Peasants : MilitaryUnits{ 

} 
+(id)militaryUnits; 

@end 

#import "MilitaryUnits.h" 

@implementation MilitaryUnits 

@synthesize number_of_units = _number_of_units; 
@synthesize stamina = _stamina; 
@synthesize experience = _experience; 
@synthesize armor_level = _armor_level; 
@synthesize weapon_levell = _weapon_levell; 

@end 

@implementation Peasants 

+ (id)militaryUnits { 

    Peasants *militaryUnits = nil; 
    if ((militaryUnits = [[[super alloc] initWithFile:@"Target.png"] autorelease])) { 
    } 
    return militaryUnits; 

} 

@end 

Обратите внимание, я USI ng cocos 2d

+1

Пожалуйста, пост полный errormrssage. –

+0

Я не вижу ни одного «initWithFile», объявленного в вашем файле интерфейса «.h'». –

+1

Нам нужна трассировка стека, чтобы правильно диагностировать проблему. Трассировка стека выглядит как список функций/методов и должна быть указана непосредственно перед сообщенной ошибкой. –

ответ

2

выглядит так, как будто ваш спрайт равен нулю, то есть файл «Target.png» не найден. Убедитесь, что имя файла имеет тот же самый случай (в поиске), как вы указали в своем коде, и что файл включен в членство цели в Xcode.

Также

+ (id)militaryUnits { 

    Peasants *militaryUnits; 
    if ((militaryUnits = [[[super alloc] initWithFile:@"Target.png"] autorelease])) { 
     return militaryUnis; 
    } else { 
     CCLOGERROR(@"your favorite whine style for errors like file not found"); 
     return nil; 
    } 
} 
+1

Я забыл, что такое проект, какая ошибка или что я думал, но спасибо, что ответили на вопрос :) – TheLivingForce

+0

Я, наконец, решил это. Спасибо. – zszen