0
Я хочу передать NSMutableDictionary из одного класса через таймер в другой класс, который вызывается из таймера. Я получаю сообщение об ошибке @selector([generateStickFig:enemies])
Я пробовал принимать [], но он все еще ошибается.Objective C: Передача переменных между классами
-(void)awakeFromNib {
//start timer that fires every second
NSMutableDictionary *enemies = [[NSMutableDictionary alloc] init];
[NSTimer scheduledTimerWithTimeInterval:(0.001) target:self selector:@selector([generateStickFig:enemies]) userInfo:nil repeats:YES];
}
-(void) generateStickFig:(NSMutableDictionary *)enemies {
int x = random() % 1000;
if (x == 1) {
stickFig = [[UIButton alloc] initWithFrame:CGRectMake(0, 650, 50, 50)];
[stickFig setBackgroundColor:[UIColor blackColor]];
[stickFig addTarget:self action:@selector(tapFig:) forControlEvents:UIControlEventTouchUpInside];
[enemies setObject:object forKey:[NSString stringWithFormat:@"object%i",i]];
[self.view addSubview:stickFig];
}
}
Любые предложения?
Я думаю, что это работает, он компилируется сейчас. Один вопрос, однако, как он знает, какую переменную отправлять, если вы не включаете ее в селектор. – Chris
Если у вас есть несколько переменных для отправки, вы должны упаковать их в словарь и передать словарь в аргумент userInfo :. –
Вы включаете словарь врагов в качестве параметра userInfo. Я забыл, что вам нужно немного изменить метод обратного вызова. Я редактировал необходимые изменения в свой ответ. –