Skip to content

Instantly share code, notes, and snippets.

@priore
Last active February 28, 2016 02:55
Show Gist options
  • Save priore/df38cec00e98c96767c3 to your computer and use it in GitHub Desktop.
Save priore/df38cec00e98c96767c3 to your computer and use it in GitHub Desktop.
Generate a unique id of a NSObject
#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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment