いいえ、できません。
buttonImage.image
ボタン内のメモリに格納されている UIImage です。
[UIImage imageNamed:@"myImage_2.png"]
まったく異なる UIImage を作成します。両方の UIImage は、同じファイルから作成された可能性が非常に高く、この場合は@"myImage_2.png"
、メモリ内の 2 つの別個の UIImage です。
あなたの行の==
小切手:
if(buttonImage.image == [UIImage imageNamed:@"myImage_2.png"])
UIImages が同じファイルから作成されたかどうかはチェックしません。それらがメモリ内の同じ場所を指しているかどうかを確認します。それらは別々に作成され、保存された 2 つの UIImage インスタンスであるため、そうではありません。
--
いいえ、これはできません。ただし、別の方法で問題を解決できる可能性があるのは、UIButton をサブクラス化し、適切にNSString* imageFilename
. (コントロールの状態ごとに異なる画像を設定する場合は、それらの画像ファイル名を格納するために複数の変数が必要になります)。次に、UIButton サブクラスのメソッドをオーバーライドしsetImage:forControlState
、画像が変更されるたびにそこにファイル名を保存します。次に、次のチェックを実行できます。
if([imageFileName isEqualToString:[[NSString stringWithFormat:@"myImage_%d.png", selectNum + 1 ]])
そして、それはあなたが望む答えを得るでしょう!