2010-07-04 3 views
0

이렇게 할 수 있습니까?1 초 : 객관적인 코딩 도움말

if (myVariable == 100 for more than 1 second) { 
} 

그래서 myVariable이 1 초 이상 100이면 무엇인가하십시오.

감사합니다. 엘리야

+0

나는 당신이 문제를 해결하기 위해 잘못된 접근 방식을 취하는 것 같아요. 이 코드의 컨텍스트는 무엇입니까? 왜 그런 짓을하고 싶니? 어쩌면 우리는 다른 접근법을 찾아 낼 수 있습니다. –

+0

글쎄, 스피킹을 멈추었을 때 (사운드가 일정 레벨 이하로 떨어지면) 텍스트 필드에서 명령을 보낸다. 페일 세이프 (거의 ...) 나는 스피커가 말을 멈추었다 고 확신 할 때만 명령을 보내기를 원합니다. 어떤 아이디어 ?? – objectiveccoder001

답변

0

타이머가 1 초인 if() 문의 본문에서 NSTimer를 시작할 수 있습니다.

if(myVariable >= 100 && myTimer == nil){ 
    //NSTimer code here 
}else if(myVariable < 100 && myTimer !=nil){ 
    //Invalidate timer 
    //Set myTimer to nil 
} 

당신은 당신이 원하는 것을 그 메소드를 호출하는 타이머를 얻을 경우

같은 뭔가.

이 방법은 효과가 있지만 도움을 줄 수는 없지만 실제 문제를 해결할 수있는 더 나은 해결책이 있다고 생각합니다.

1

그런 것 같지 않습니다. 아마도 다른 접근 방식으로이를 해결할 수 있습니다. 즉 누군가가 myVariable을 변경할 때마다 일종의 타임 스탬프를 남겨두고 마지막 변경 이후 얼마나 많은 시간이 경과했는지 확인할 수 있습니다.

2

myVariable을 새 값으로 설정할 때 시간을 저장할 수 있습니다 (여기 저기에 setter 메서드를 사용하면 쉽습니다). 그런 다음 잠시 후에 실행되는 타이머를 시작하고 그 동안 값을 변경하지 않았는지 확인하십시오.

그것은 비정상적인 패턴이지만, 성취하려고하는 것보다 더 나은 방법이있을 것입니다.

+0

이 작업을 수행하는 다른 방법은 무엇입니까? – objectiveccoder001

관련 문제