我正在寻找一个不错的可可方式序列化一个 NSData 对象到一个十六进制字符串。其思想是在将通知发送到服务器之前序列化用于通知的 deviceToken。
我有以下的实现,但我认为必须有一些更短和更好的方法来做到这一点。
+ (NSString*) serializeDeviceToken:(NSData*) deviceToken
{
NSMutableString *str = [NSMutableString stringWithCapacity:64];
int length = [deviceToken length];
char *bytes = malloc(sizeof(char) * length);
[deviceToken getBytes:bytes length:length];
for (int i = 0; i < length; i++)
{
[str appendFormat:@"%02.2hhX", bytes[i]];
}
free(bytes);
return str;
}