我在 .h 文件中声明了一个 UIButton
@property (retain, nonatomic) IBOutlet UIButton *btnQuarter;
当我有
if ([self.btnQuarter imageForState:UIControlStateNormal] == [UIImage imageNamed:@"match.png"])
一旦应用程序加载它就可以完美运行。但是,当应用程序从锁定状态或在主屏幕上返回时,它就不起作用了。
我在 .h 文件中声明了一个 UIButton
@property (retain, nonatomic) IBOutlet UIButton *btnQuarter;
当我有
if ([self.btnQuarter imageForState:UIControlStateNormal] == [UIImage imageNamed:@"match.png"])
一旦应用程序加载它就可以完美运行。但是,当应用程序从锁定状态或在主屏幕上返回时,它就不起作用了。
试试这个代码:
- (IBAction)nextQtr:(id)sender
{
if ([[sender imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"match.png"]])
}
它不起作用,因为您正在比较指向对象的指针。在您的情况下,它们指向不同UIImage
的 s,即使图像本身包含相同的数据。[UIImage imageNamed:]
缓存图像,这就是为什么在应用程序启动时它可以正常工作的原因,但是当您进入后台时,缓存会被释放(我认为)以释放内存。当您从后台返回到前台时, [UIImage imageNamed:]
调用创建相同的UIImage
,但在另一个内存地址。