2012-11-25 3 views
0

현재 이미지가 특정 이미지 뷰와 동일한 경우 이미지 뷰에 이미지를 표시하는 코드를 만들었습니다. 그것은 제대로 작동하지만 만약 내가 애플 리케이션 나가서 다시 어떻게 든 현재의 이미지를 볼 수 없습니다 비교하고 비교가 더 이상 작동하지 않습니다.앱이 종료 된 후 이미지 뷰가 비어졌습니다.

if (imageview25.image == [UIImage imageNamed:@"BLUEBOXPUNT.png"]){ 
      key25.hidden = NO; 
     } 

그래서이이 작업을 수행하거나 같은 일을 할 수있는 다른 방법이 있나요 작동하지만 내가 응용 프로그램을 떠나 다시 올 때 이미지가 BLUEBOXPUNT.png

동일하다고 볼 수 없습니다 Java에서 나는 imageview25.getImage를 할 것이다. 나는 그것이 효과가있을 것이라고 생각한다.

+0

흥미 롭습니다. 눈에 보이는 이미지'imageview25.image'와'[UIImage imageNamed : @ "BLUEBOXPUNT.png"]'가 눈에 보일지라도, 당신은 포인터를 UIImage와 비교하고 있습니다. 아마 그렇지 않다) 동일? – FluffulousChimp

답변

3

귀하의 비교 논리는 두 개의 이미지 객체가 같은 주소를 가지고 있는지 확인됩니다. 이미지가 캐시에 남아있을 때만 작동합니다. 메모리 경고로 인해 앱을 전환 할 때와 동일한 문제가 발생할 수 있습니다.

이미지와 파일 이름을 연결하려면 이름을 입력하는 사전을 사용하여 직접해야합니다.

+0

부울을 기억할 것이므로 이미지가 BLUEBOXPUNT가되었을 때 나는 사실이되도록 부울을 만들었습니다. 제 문제를 해결하는 'ok'방법이라고 생각합니까? – Kevin

+0

프로그램 논리를 알지 못해도 말하기는 어렵지만 합리적인 것 같습니다. 그것은 당신이 테스트하고 싶은 것을 당신 자신의 지표로 유지하는 원칙에 부합합니다. –

+0

답변과 명확한 설명에 감사드립니다. – Kevin

0

하나 이상의 이미지를 표시해야하는 경우. 더 쉬운 방법은 하나 이상의 UIImageView을 사용하는 것입니다. 모두 같은 크기이고 같은 위치에 있습니다. 그러나 각각 다른 이미지를 보여줍니다. 그런 다음 필요한 것을 보여주고 다른 사람들을 숨길 수 있습니다 (또는 bringSubviewToFront).

당신은 실제로 두 이미지를 비교해야하는 경우 :

Cocoa Touch - Comparing Images

OpenCV

관련 문제