0

我有一个 UIImageView 为用户保存封面照片。通过 xcode IDE,我添加了一个占位符图像,用作股票封面照片。当用户点击封面照片时,我需要一种方法来判断 UIImageView 中的图像是股票封面照片还是用户添加的另一张照片。图像永远不会为零。目前我正在通过将当前封面照片的图像数据与生成的图像数据进行比较来从库存封面照片图像文件中创建图像。

这就是我所拥有的:

if ([UIImagePNGRepresentation(_coverPhoto.image) isEqualToData:UIImagePNGRepresentation([UIImage imageNamed:@"stockCoverPhoto.png"])])
{
    [self loadPhoto:1];
}

当应用程序在同一会话中关闭并重新打开时,将 _coverPhoto.image 与 UIImage imageNamed:@"stockCoverPhoto.png" 进行比较会产生错误的结果。必须有更好的方法来做到这一点,我需要我的代码尽可能高效,并且将两个 NSData 结构相互比较似乎没有必要。

4

2 回答 2

2

试试这个

    UIImage *img = [UIImage imageNamed:@"some.png"];
    UIImage *img1 = [UIImage imageNamed:@"some1.png"];

    NSData *dataObj1 = UIImagePNGRepresentation(img);
    NSData *dataObj2 = UIImagePNGRepresentation(img2);

    BOOL test = [dataObj1 isEqualToData:dataObj2];

     if(test) 
         //is Equal

   and other answer is

NSData 与 NSData 的百分比比较
NSData isEqualtoData

于 2013-06-01T06:10:56.243 回答
0

我想用户不会在每次启动应用程序时添加这张图片。我根本看不到问题所在。只需为此使用一些属性,在加载用户图片后处理它并将其保存到 NSUSerDefaults、云或其他地方......

// your class interface
@property (nonatomic) BOOL isUserPictureLoaded;
// first time run save isUserPictureLoaded = NO to NSUserDefaults
// if user saves own picture, set isUserPictureLoaded = YES and save to NSUserDefaults
于 2013-05-31T20:48:39.330 回答