так что у меня есть подкласс UIScrollingView, который получил NSMutableArray от всех своих представлений.Я заполняю этот массив, передавая серии представлений, которые я хочу добавить к нему.Тем не менее, когда я иду, чтобы получить эти представления в моей функции touchesEnded, я получаю сбой.Вот неправильный код
#import "StageScrollView.h"
#import "Stage.h"
@implementation StageScrollView
@synthesize controller;
-(id)initWithCoder:(NSCoder *)encoder{
self = [super init];
if(self != nil)
{
stages = [[NSMutableArray alloc] init];
}
return self;
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
if(stages == nil)
{
NSLog(@".......");
}
int index = (int)[controller getCurrentStage];
Stage *currentStage = [stages objectAtIndex:index];
UITouch *touch = [[touches allObjects] objectAtIndex:0];
CGPoint spawn = [touch locationInView:currentStage];
Performer *temp = [[Performer alloc] init];
[temp setFrame:CGRectMake(spawn.x, spawn.y, 25, 25)];
[currentStage addPerformer:temp];
NSLog(@"Touch ended!! %i", index);
}
//we probably shouldn't init stages here...best practices????
-(void)addStage:(Stage *)stageToAdd
{
//[stageToAdd retain];
[stages addObject:[stageToAdd retain]];
[self addSubview:stageToAdd];
Stage *temp = [stages objectAtIndex:0];
NSLog(@"%@", temp);
}
@end
, обратите внимание, что я инициализировал NSMutableArray в initWithCoder
, так как я загружаюсь из пера.И да, когда я печатаю 0-й элемент в функции addStage
, он печатается правильно.Но когда я пытаюсь получить 0-й элемент в функции touchesEnded
, не происходит игра в кости.Для чего это стоит, когда я пытаюсь проверить этапы в отладчике, он пытается прочитать его как NSCFString
.Контроллер вида controller
устанавливается через IB.
Спасибо за любую помощь!