Я запускаю этот код:
- (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
Обратите внимание, я использую кокосы 2d
initWithFile
в вашем файле интерфейса.h
. - person Michael Dautermann   schedule 02.07.2012super alloc
в+ (id) militaryUnits
; Я не думаю, что это будет определено. Попробуйте заменить его наMilitaryUnits alloc
. - person Kevin Grant   schedule 02.07.2012