문제

(거의 해결되었지만 꽤는 아닙니다)(내 임시 솔루션은 공허 메소드를 사용하여 모든 버튼에서 호출하는 것이며, 이렇게하면 각 버튼으로 사용되는 코드를 개선 할 때 각 개별 버튼을 편집 해야하는 경우 각 버튼으로 사용하는 코드를 편집 할 수 있습니다.

나는 그것이 내가 만든 정말 간단한 오류라고 확신하지만, 나는 그것을 찾을 수 없다.

정수가 50에 도달 할 때 이전에 정의 된 경고를 보여 주려고합니다. 이것은 viewDidload 메소드에서 사용하는 if 문입니다.

if(count == 50){
    [alert show];
}

정수가 50에 도달하면 아무 일도 일어나지 않습니다. 내가 어디로 잘못 갔습니까?

정수는 iBaction에서 다음과 같이 변경됩니다.

 count+=10;

if 문을 제거하고 경고를 표시하면보기가로드되면 표시됩니다. 따라서 경고는 문제가되지 않습니다.

누군가는이 코드가 ViewDidload 메소드에서 한 번만 실행되고 정수가 이후 단계에서 50으로 변경되면 정수가 50이되기를 기다리지 않고 대신 값이 50이 아닌 것을 보지 못하고 실행하지 않는다고 지적했습니다. 경고하십시오.

그래서 코드로 정수를보고 경고를 실행하는 방법 언제 정수는 50이지만 정수를 증가시키는 동작의 경고를 호출하지 않습니까?

오 그리고 그건 그렇고, 나는 정수를 높이고 작동하는 동작에서 if 문을 호출하려고 시도했지만 약 100 개의 버튼이있어 정수 수를 증가시키고 각 단일 버튼에서 값이 50인지 확인하는 경우 약간 공간이 보입니다. 모든 사본과 붙여 넣기에 소비하고 시간이 많이 걸립니다. 또한 정수가 50에 도달하면 경고가 발생할 계획입니다. 정수 수의 값이 50인지 확인하는 더 효율적인 방법이 있다고 확신합니다.

도움이 되었습니까?

해결책

추가 해보세요

if(count == 50){
    [alert show];}

카운트에 10을 추가 한 직후에 동일한 iBaction에서.

다른 팁

당신이 말할 때

그러나 정수가 50에 도달하면 아무 일도 일어나지 않습니다

그것은 당신이 정수 가치를 바꾸는 것을 믿게합니다. ~ 후에 -ViewDidload 메소드가 실행됩니다. if 문은보기가로드 될 때만 한 번만 평가되므로 그 지점 이후 정수의 값을 변경하는 경우 정수를 변경하는 모든 것에 경고보기를 추가해야합니다.

대상 C는 C 위에 얇은 층이므로 유효한 C 구문이 작동해야합니다. 어떤 종류의 변수가 계산됩니까? 당신은 그것을 an으로 정의하고 싶습니다 int, nsnumber가 아닙니다. NSNumber는 숫자를 랩핑하여 대물 픽 객체로 사용할 수있는 클래스이지만 == 구문을 사용하여 비교할 수는 없습니다.

도움이되기를 바랍니다!

키 가치 관찰을 확인하십시오

카운터를 속성으로 만드는 경우 값이 변경 될 때마다 발사되는 관찰자를 설정할 수 있어야합니다. 그 관찰자에서는 경고를 발사하기 위해 수표를 수행 할 수 있습니다.

노력하다

NSLog(@"count is %d",count); 

그리고 문제가 있는지 확인하십시오. Count가 엉망인지 경고하는지 말하기는 어렵지만 문제는 IF 문 자체가 아닙니다.

시도해 볼 몇 가지,

  • IF 문에서 중단 점을 설정하십시오
  • if 문을 변경하십시오 count >= 50
  • Count는 실제로 int입니까, 아니면 플로트입니까?

가장 간단한 답변 : 증분하는 모든 것들이 있습니다. count 컨트롤러의 하나의 메소드를 살펴보고 해당 메소드가 경고를 표시 할 시간인지 확인하십시오.

가치를 보는 것이 더 복잡한 답변 : 키 가치 관찰. 50에 도달 할 때 값을보고 경고에 응답하기 위해 관찰자를 설정할 수 있습니다. 그러나 이것은 더 많은 코드가 필요하고 동작을 처리하기위한 중심 방법을 도입하는 것보다 더 복잡하고 버그가 발생합니다.

나는 그것을 얻지 못한다. 왜 카운터를 증가시키는 코드의 경고를 보여줄 수 없습니까? 그것은 uialertview에 대한 참조가 필요합니다 ... 또는 알림 보유 코드가 듣고있는 알림을 게시합니다.

ViewDidload는 뷰가로드 될 때만 실행됩니다. 그 후에는 특별한 상황을 금지하고 다시 실행되지 않습니다.

버튼을 누르고 카운트를 늘릴 때마다 카운트를 확인하려면 iBaction에서 그렇게하십시오.

카운터를 확인하는 방법을 만들 수 있습니다.

-(BOOL) checkCounter
{
  return count == 50;
}

그리고 당신이 그것을 증가시킨 후에도 버튼에서 호출하십시오.

if ([self checkCounter])
{
//do stuff when it's 50
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top