2010-11-23 28 views
1

好吧,所以我有一个问题,我需要检查用户是否更改了image和imageView中的图像。如果没有,那么应用程序不需要重新保存一堆东西,它被改变,那么它应该保存。所以基本上,这只是为了优化代码,因为在保存时我将四个图像(loRes,loResThumb,hiRes和hiResthumb)写入磁盘,并且需要一点时间。检查UIImageView的图像是否已更改

我想我可能会尝试通过将图像保存为NSDATA,当用户进入编辑模式,然后当用户退出时,检查并查看包含在UIIMageView中的NSDATA是否与我之前临时保存的NSDATA相同。这会工作还是他们的更好的方式,比如检查UIImagePicker是否已被调用(不一定意味着图像已更改,但至少比每次都节省更多)。

任何提示赞赏。谢谢!

+0

你是从一个预设的默认图像开始的,你知道每次都是一样的吗? – DerekH 2010-11-23 15:56:51

+0

不需要。用户可以将图像更改为任何他或她想要的内容,然后将其保存到磁盘,然后从磁盘中抓取并在再次查看特定页面时插入到UIImageView中。所以我需要知道用户是否改变了显示的图像,而不管之前有什么图像。说得通? – Glitch 2010-11-23 16:27:11

回答

2

尝试创建一个UIImageView的子类,如果设置了image,则会'标记'脏值。

@interface myImageView : UIImageView { 
    BOOL _dirty; // set to NO in init 
} 

- (BOOL) hasChanged; 

@end 

@implementation 


- (void) setImage: (UIImage *)image 
{ 
    [super setImage:image]; 
    _dirty = YES; 
} 

- (BOOL) hasChanged 
{ 
    if (!_dirty) return NO; 
    _dirty = NO; 
    return YES; 
} 
@end