A API Evernote fornece uma bodyHash
propriedade sobre os tipos de recursos. Essa propriedade é um NSData
objeto, mas convertê-lo em uma string usando o costume [NSString stringWithData:]
ou o costume do Evernote [data base64EncodedString]
não funcionou. Depois de muito tempo pesquisando, descobri que este método funcionava:
+ (NSString *)evernoteBodyHashToMD5:(NSData*)data
{
NSMutableString *sb = [[NSMutableString alloc] init];
for (long i=0; i<[data length]; i++) {
UInt8 intVal = 0xff & *((UInt8*)[data bytes]+i);
[sb appendString: [NSString stringWithFormat:@"%02x", intVal]];
}
return [NSString stringWithString:sb];
}
Eu coloquei isso em uma categoria NSString
por conveniência. Eu encontrei a implementação aqui