uilabel은 nsarray에서 홀수 물체 만 표시합니다
문제
Objectatindex를 정의하는 int가 있는데,이를 문자열에 제공 한 다음 Uilabel에 표시 할 때 Uilabel이 배열을 통과 할 때 배열을 수정할 때 (이 경우 단어를 추가). 이상한 것만 표시됩니다. 나는 NSLOG를 수행했고 그것이 모든 것을 문자열에 전달한다는 것을 알았지 만 레이블이 모든 것을 표시하는 것은 아니며, 처음으로 만 만 수행하고 배열을 수정하면 홀수 만 수행합니다.
편집 : 코드 :
- (void) stuff {
NSArray *indivwords = [sentence componentsSeparatedByString:@" "];
count = [indivwords count]; //count=int
if (i < count) {
NSString *chunk = [indivwords objectAtIndex:i];
[word setText:chunk];
NSLog(chunk);
i++;
} else {
word.textColor = [UIColor greenColor];
[word setText:@"DONE"];
}
}
이 모든 것은 NSTIMER에 의해 제어되며 슬라이더 값을 기반으로 설정합니다. 또한 iBaction에서 0으로 설정됩니다
iBaction 코드 :
word.textColor = [UIColor whiteColor];
[timer invalidate];
i = 0;
speedd = (1/speed.value)*60;
timer = [NSTimer scheduledTimerWithTimeInterval:(speedd) target:self selector:@selector(stuff) userInfo:nil repeats:YES];
편집하다:
나는 그것을 고쳤다! 내가 한 일은 내가 카운트에 도달 한 후에 전화하는 것이 었습니다.
-(void)stoptimer
{
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:(.01) target:self selector:@selector(empty) userInfo:nil repeats:YES];
}
비어있는 것은 아무것도없는 공허입니다. 글쎄, 내가 한 것은 댓글을 추가하는 것뿐이었습니다.
//don't look over here, nothing to see here, oh look at that
원하는 경우 누군가가 이것을 닫을 수 있습니다
해결책
Nstimer의 시간 간격은 슬라이더로 제어된다고 말했습니다. 아마도 슬라이더 값을 변경할 때마다 새로운 타이머 인스턴스를 시작하고있을 것입니다. 변경 후에는 둘 타이머가 실행됩니다. 첫 번째는 레이블과 증분을 업데이트합니다 i
. 두 번째는 첫 번째 직후에 와서 i
의 값은 증가하므로 현재 덩어리 대신 다음 청크를 표시합니다.
타이머 - NSLOG 타이머 콜백의 타이머 인스턴스를 계산하고 결과를 비교하십시오. 하나 이상의 발사 일 수 있습니다.
다른 팁
내 생각 에이 방법이 있어야한다고 생각할 때이 방법을 부르는 두 가지 다른 조치가 있다는 것입니다. 나는 거기에 중단 점을 넣고 그것이 당신이 생각해야 할 곳을 멈추는 지 확인합니다.