Как можно преобразовать 64-символьный размер devToken, полученный в didRegisterForRemoteNotificationsWithDeviceToken, в строку размером 32 символа?

При реализации службы push-уведомлений в моем приложении я столкнулся с очень странной проблемой. В моем случае я использую серверную модель покупки в приложении (и, следовательно, сервер контент-провайдера является настраиваемым сервером, предоставляемым клиентом).

Сервер предоставляет API, который используется для регистрации устройства в APNS. В этом API ожидается, что токен устройства будет иметь длину 32 символа (как написано в документации Apple, что токен устройства, используемый для отправки с уведомлением, должен иметь длину 32 байта, я полагаю).

Моя проблема в том, что, поскольку мы получаем 64 символа String в методе didRegisterForRemoteNotificationsWithDeviceToken, как можно преобразовать его в 32 символа?
Я имею в виду, не будет ли потеря данных?
В настоящее время я обрезаю NSData, чтобы получить только NSString.


Обновление:
Могу ли я использовать memcpy на iPhone? Я узнал, что он доступен только в Mac OSx, а не в iOS, верно?


Пожалуйста, предложите способ сделать это.

Заранее спасибо.


person Naved    schedule 22.09.2011    source источник


Ответы (1)


Возможно, 64-байтовый sting закодирован в шестнадцатеричном формате?

person zaph    schedule 22.09.2011
comment
Вы хотите сказать, что его нельзя преобразовать в 32-символьную строку? - person Naved; 22.09.2011
comment
Как вы определяете, что это 64 байта? НСлог? данные.длина? Опубликуйте его, измените несколько байтов, если это необходимо для безопасности. - person zaph; 22.09.2011
comment
Я не уверен, что это 64 байта, это выглядит длинной строкой 64 символа. И я предполагаю, что 1 символ занимает 1 байт. - person Naved; 24.09.2011
comment
Я узнал, что строка, приходящая как devToken в didRegisterForRemoteNotificationsWithDeviceToken, на самом деле представляет собой строку из 32 символов, которая присутствовала в виде 64-байтового шестнадцатеричного кодирования, и, следовательно, возникла путаница. Спасибо @CocoaFu за подсказку. - person Naved; 26.09.2011