目标C:在类之间传递变量

时间:2011-01-22 21:18:22

标签: objective-c timer messaging

我想通过计时器将NSMutableDictionary从一个类传递到另一个从计时器调用的类。我在@selector([generateStickFig:enemies])时遇到错误我尝试了[],但它仍然是错误的。

-(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];
}
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试

[NSTimer scheduledTimerWithTimeInterval:(0.001) target:self selector:@selector(generateStickFig:) userInfo:enemies repeats:YES];

创建计时器。然后将回调方法更改为

-(void) generateStickFig:(NSTimer *)timer {
NSDictionary *enemies = (NSDictionary *)timer.userInfo;
    ...
}