2012-11-25 37 views
0

我創建了一些代碼,用於在當前圖像等於某個圖像視圖時在圖像視圖中顯示圖像。它工作正常,但如果我決定退出應用程序,然後返回它不知何故不會看到當前的圖像,比較不再工作。退出應用後imageview爲空

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時,我創建了布爾值爲true,因爲它們會記住布爾值,您認爲這是一種「確定」方式來解決我的問題嗎? – Kevin

+0

很難說不知道程序邏輯,但這聽起來很合理。它符合保持你自己想要測試的指標的原則。 –

+0

好的,謝謝你的回答和你的明確解釋! – Kevin

0

如果您需要顯示多個圖像。更簡單的方法是使用多個UIImageView,它們的大小和位置都相同。但每一個都表現出不同的形象。然後你可以顯示你需要的並隱藏其他人(或bringSubviewToFront)。

如果你確實需要比較兩個圖像:

Cocoa Touch - Comparing Images

OpenCV