NSDataオブジェクトを16進数の文字列にシリアル化するための、素敵なココアの方法を探しています。アイデアは、サーバーに送信する前に、通知に使用される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;
}