Ну, вот ситуация:
У меня есть ...
- пользовательский класс с
UIImageView
-свойством, назовем его Enemy
-класс
- a
ViewController
- a
NSMutableArray
, чтобы помочь создать несколько экземпляров Enemy
(называемых enemies
)
и что я хочу:
- сможет создавать неограниченное количество
Enemy
-инстанций с помощью метода в моем ViewController
(например, [self spawnEnemy];
, где self
- это ViewController
)
- и, впоследствии, отобразить свойство
UIImageView
(назовем его "enemyImage
") на view
, которое контролируется моим ViewController
Я пробовал что-то вроде этого:
-(Enemy *) spawnEnemy
{
Enemy *tempEnemy = [Enemy new];
[enemies addObject:(Enemy*)tempEnemy];
[self.view addSubview:(UIImageView*)[[enemies objectAtIndex:[enemies count]] enemyImage]];
//randomLocation is declared in the Enemy-Class and just assigns a random
//CGPoint to self.enemyImage.center
[[enemies objectAtIndex:[enemies count]] randomLocation];
return [[enemies objectAtIndex:[enemies count]]createEnemy];
}
Это работает без ошибок, randomLocation
вызывается (пробовал с NSLog), И если я делаю что-то подобное в другом методе ViewController
:
[[self spawnEnemy] enemyTestMethod];
ВрагТестМетод также выполняется.
Но, тем не менее, enemieView
s не отображаются на экране ...
Что я делаю не так?
Большое спасибо за вашу помощь и время.
==== Редактировать ====
Вот соответствующий код от Enemy.h / Enemy.m:
@interface Enemy : NSObject
{
UIImageView *enemyImage;
}
@property (nonatomic, retain) IBOutlet UIImageView *enemyImage;
-(Enemy*) createEnemy;
//Enemy.m
@implementation Enemy
@synthesize enemyImage, speed;
-(Enemy *) createEnemy
{
self.enemyImage = [[UIImageView alloc] init];
[self.enemyImage setImage:[UIImage imageNamed:@"enemy.png"]];
return self;
}
Я также исправил последнюю строку в методе spawnEnemy
для правильной отправки createEnemy.