2011-07-05 100 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

我該怎麼辦「只有當你需要使用它並在它之後立即停止時才啓動定時器」 –