0

ユーザーのカバー写真を保持する UIImageView があります。xcode IDE を使用して、ストック カバー写真として機能するプレースホルダー イメージを追加しました。ユーザーがカバー写真をクリックしたときに、UIImageView 内の画像がストック カバー写真なのか、ユーザーが追加した別の写真なのかを判断する方法が必要です。イメージは決して nil ではありません。現在、現在のカバー写真の画像データと生成された画像データを比較して、ストックカバー写真の画像ファイルから画像を作成しています。

これは私が持っているものです:

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

_coverPhoto.image を UIImage imageNamed:@"stockCoverPhoto.png" と比較すると、同じセッション内でアプリを閉じて再度開いたときにバグのある結果が生成されました。これを行うためのより良い方法が必要です。コードをできるだけ効率的にする必要があり、2 つの 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 に答える