함수 호출 루프가 있지만 내보기가 나타나면 호출하고보기가 사라지면 호출하지 말아야합니다.iOS에서 NSThread 중지
루프 기능 :
-(void)updateArray
{
while (1)
{
NSLog(@"IN LOOP");
[NSThread sleepForTimeInterval:2.0];
if([FileSizeArray count] >0 || [FileCurrentSizeArray count] >0)
{
[FileSizeArray removeObjectsInRange:NSMakeRange(1, FileSizeArray.count-1)];
[FileCurrentSizeArray removeObjectsInRange:NSMakeRange(1, FileSizeArray.count-1)];
}
[FileNameArray removeAllObjects];
[UserNameArray removeAllObjects];
...
}
그리고
timer= [NSTimer scheduledTimerWithTimeInterval: 2.0
target: self
selector:@selector(updateArray:)
userInfo: nil repeats:NO];
ViewWillAppear()
에서 그리고 DidDisAppear()
[timer invalidate];
timer = nil;
에서하지만이 작동하지 않는, 그것은 여전히 전화 내 응용 프로그램 충돌이 있습니다.
아무도 도와 줄 수 있습니까? 미리 감사는
당신은 당신이 응용 프로그램이 충돌 할 때 수신하는 그것을 줄 오류 메시지를 추가 할 수 추락 했어? 또한'scheduledTimerWithTimeInterval ...'은 현재 스레드 ('viewWillAppear'에서 호출 된 것이므로 주 스레드)에서 타이머를 예약하고, 메인 스레드에서'[NSThread sleep ...]'을 호출해서는 안됩니다. –
메서드에 매개 변수가 없기 때문에 전달하는 경우에도 타이머의 메서드 이름을 (updateArray)로 변경하면됩니다. –