2011-01-22 139 views
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]; 
} 
} 

有什么建议吗?

回答

1

尝试

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

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

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

我认为这有效,现在编译。但有一个问题,它如何知道在选择器中没有包含哪个变量 – Chris 2011-01-22 21:27:39