En utilisant le SDK de l'iPhone, je demande à l'utilisateur de sélectionner des images dans le sélecteur d'images. Si l'utilisateur sélectionne une image qu'il a déjà sélectionnée auparavant, j'aimerais qu'il le sache.
Mon plan initial (juste pour m'assurer que d'autres choses fonctionnent pour l'instant) est d'enregistrer l'image dans un fichier (je dois le faire de toute façon pour d'autres raisons), en utilisant une somme de contrôle des NSData comme nom de fichier. Ensuite, lorsqu'ils sélectionneront la même image plus tard, la somme de contrôle sera la même et je pourrai donc voir qu'un fichier portant ce nom existe déjà - hourra !
Cependant, j'ai parcouru l'Internet et la documentation d'Apple pour savoir comment calculer une somme de contrôle à partir d'une NSData. Je sais que je pourrais mettre en œuvre ma propre implémentation, mais je préférerais éviter cela, si possible. Je suis également ouvert à d'autres idées sur la façon de vérifier que deux UIImages sont identiques.
EDIT
Il y a deux ans, j'ai promis un exemple de code, et le voici. Vraiment désolé pour le retard ! :)
+(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;
}