[Objective-C] Generate a unique id of a NSObject
      back

#import <CommonCrypto/CommonDigest.h>

@implementation NSObject (Utility)

- (NSString*)uniqueID
{
    // nsobject --> nsdata -- > md5 hash --> hex string (30 chars)
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5([data bytes], (uint32_t)[data length], result);
    return [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]
            ];
}

@end






Copyright © 1996-2020 Centro Studi Informatica di Danilo Priore. All rights reserved. P.I.10149810581.