2011-07-05 59 views
3

在这里发生碰撞的计数器是我的代码:问题有两个图像

-(void)collision { 

    if(CGRectIntersectsRect(imageView.frame,centre.frame)){ 

     [imageView removeFromSuperview]; 
     count++; 
     label.text= [NSString stringWithFormat:@"%d", count]; 
    } 
} 


- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(collision) userInfo:nil repeats:YES]; 

    count=0;  
    scale=1; 
} 

与此代码的不止一个,有时34和某个74或70我数增加,为什么?

+0

为什么'计数== 0'?这是错误吗?尝试'count = 0'。并且使用'++ something'而不是'something ++',它会更快。 – HiTECNOLOGYs

回答

1

停止接收器再次发射 并要求从其运行循环中删除 。

- (void)invalidate 

class reference

helpful question

+0

为什么无效,我不想停止我的计时器? –

+0

@bernard langue好的,我不是iOS多线程专家。但。您不会停止计时器,并且无法立即删除该视图。和。当图像被删除时,没有理由每秒调用选择器一次。我的建议是只有当你需要使用它并在之后立即停止时启动计时器。我相信也可以使用多个定时器。 –

+0

我该怎么办“只有当你需要使用它并在它之后立即停止时才启动定时器” –