Вычислить контрольную сумму на iPhone от NSData
Используя iPhone SDK, я имею в виду, что пользователь выбирает изображения из средства выбора изображений. Если пользователь выбирает изображение, которое он выбрал ранее, я хотел бы, чтобы пользователь знал об этом.
Мой первоначальный план (просто чтобы убедиться, что другие вещи работают пока) состоит в том, чтобы сохранить изображение в файл (нужно сделать это в любом случае по другим причинам), используя контрольную сумму NSData в качестве имени файла. Затем, когда они выберут то же изображение позже, контрольная сумма будет такой же, и поэтому я вижу, что файл с таким именем уже существует - ура!
Тем не менее, я исследовал Интернет и документы Apple, чтобы узнать, как вычислить контрольную сумму из NSData. Я знаю, что мог бы реализовать свою собственную реализацию, но я бы предпочел избежать этого, если это возможно. Я также рад за другие идеи о том, как проверить, что два UIImage одинаковы.
EDIT
Два года назад я обещал пример кода, и вот он. Очень жаль за задержку! :)
<code>+(NSString*)imageIdForData:(NSData*)data { char* result = (char*) [[data MD5Sum] bytes]; NSString* hash = [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15]]; return hash; } </code>