0

我在 .h 文件中声明了一个 UIButton

@property (retain, nonatomic) IBOutlet UIButton *btnQuarter;

当我有

if ([self.btnQuarter imageForState:UIControlStateNormal] == [UIImage imageNamed:@"match.png"])

一旦应用程序加载它就可以完美运行。但是,当应用程序从锁定状态或在主屏幕上返回时,它就不起作用了。

4

2 回答 2

1

试试这个代码:

 - (IBAction)nextQtr:(id)sender

   {
    if ([[sender imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"match.png"]])

   }
于 2013-06-25T11:54:32.027 回答
0

它不起作用,因为您正在比较指向对象的指针。在您的情况下,它们指向不同UIImage的 s,即使图像本身包含相同的数据。[UIImage imageNamed:]缓存图像,这就是为什么在应用程序启动时它可以正常工作的原因,但是当您进入后台时,缓存会被释放(我认为)以释放内存。当您从后台返回到前台时, [UIImage imageNamed:]调用创建相同的UIImage,但在另一个内存地址。

于 2013-06-25T12:39:13.533 回答