2012-08-15 3 views
0

내 응용 프로그램이 임시 메시지를 표시해야하므로 자신이 직접 만든 Toast를 만들었습니다. 하나의 토스트에서만 잘 작동합니다. 메시지를 숨기려면 NSTimer를 사용하고 있습니다. 하나 이상의 토스트를 표시하면 타이머가 문제가됩니다. 마지막으로 추가 된 토스트 만 숨겨지며 다른 토스트는 숨겨지지 않습니다. 모든 건배를 숨기려면 어떻게해야합니까?코코아 터치 NStimer 문제

코드 :

제거 기능 :

-(void)removeToast 
{ 
NSLog(@"removed"); 
[self.view removeFromSuperview]; 
} 

타이머 시작 :

timer = [NSTimer scheduledTimerWithTimeInterval:(4.0f) 
             target:self 
             selector:@selector(xxxx) 
             userInfo:nil repeats:NO]; 

내가 별도의 NSObject 클래스에서 위의이을 쓴 개체를 만들었습니다. 2 개의 NSTimer를 동시에 실행하거나 모든 NSObjects을 추적하는 방법에 대한 설명이 필요합니다. 의 ViewController에서

객체 생성은 @property(nonatomic,strong)Toast *toast;

+0

내가 올바르게 이해한다면 두 개의 NSTimer를 유지해야합니까? 그렇다면 타이머를 보유하고있는 두 개의 인스턴스 변수를 생성 할 것입니다. –

+0

performSelector : withObject : afterDelay :?를 사용하지 않는 이유는 무엇입니까? –

답변

1

당신의 목적을 위해 바르에서 타이머의 istance을 유지할 필요가 없습니다 것입니다.

[NSTimer scheduledTimerWithTimeInterval:(4.0f) 
            target:self 
            selector:@selector(xxxx) 
            userInfo:yourView repeats:NO]; 

그런 다음 당신의 선택에 사용자 정보에서보기를 검색하고 숨길 :이 같은 타이머 화재가, 때 숨길 의미 뷰를 전달하는 매개 변수 : 사용자 정보를 사용합니다. 작동 샘플 here, 37 줄을 찾을 수 있습니다.