Я предполагаю, что _Objects (который должен быть в нижнем регистре o, чтобы следовать соглашениям) хранит объекты, отличные от объекта Psychicing, и вы пытаетесь извлечь из него только объект Psychicing в - (void) Touches. .. метод (который также должен быть в нижнем регистре). Если это так, вы можете сделать:
for (id obj in _Objects)
{
if ([obj isMemberOfClass:[Psychicing class]])
[self addChild:obj.psychicParticle];
}
Это приведет к тому, что только объекты Psychicing в массиве будут добавлены к себе как дочерние.
Похоже, у вас есть еще одна ошибка, хотя код, который вы вставили, является вашим реальным кодом. Init должен быть определен как:
- (void) init{
_Objects = [[NSMutableArray alloc]init];
Psychicing *psy = [[Psychicing alloc]init];
[psy startPsychic];
[_Objects addObject: psy];
[psy release];
}
с _Objects, определенными как переменная экземпляра (или свойство) в интерфейсе класса. Как вы уже написали, это переменная метода в методе init, и она протекает. Поэтому, когда вы пытаетесь получить доступ к _Objects в -touches, _Objects, скорее всего, равен нулю.