Описание NSData и строка NSString stringWithFormat имеют разные возвращаемые результаты при компиляции с Xcode 11 по сравнению с Xcode 10 - PullRequest
0 голосов
/ 01 июля 2019

Во всех примерах, которые я видел, с использованием push-уведомлений, используется [NSData description] для получения push-токена для отправки на сервер.Однако, когда приложение создается с XCode 11, результат этого отличается от того, когда он создается с Xcode 10, аналогично для [NSString stringWithFormat].

Пример:

NSData* theToken = ...
....
NSString* stringWithFormat = [NSString stringWithFormat"@"%@", theToken];
NSString* description = [theToken description];

При компиляции с Xcode10 и запустите, результаты для обоих:

@"<44154da7 32345001 53106883 ffc1071f a59c0d24 a70871e5 aa8dbb41>"

Однако при компиляции с Xcode 11 и запустите результаты:

@"{length =32, bytes = 0x44154da7 32345001 53106883 ffc1071f ... a70871e5 aa8dbb41}"

(Этот последний результат не произойдет, если кодкомпилируется с Xcode 10, а затем запускается на iOS 13.)

Как вы можете преобразовать NSData в NSString при компиляции с Xcode 11, который даст те же результаты, что и XCode10, или как вы можете извлечь только раздел байтовв NSString из возвращаемого результата, если скомпилировано с Xcode 10?

1 Ответ

0 голосов
/ 01 июля 2019

Короче, вы не можете.

Метод description используется для целей отладки. Он возвращает строковое представление объекта, и это представление не гарантируется стабильным от выпуска к выпуску.

Если вам нужно закодировать NSData в какую-то шестнадцатеричную строку, где вы управляете форматом, вам придется сделать это вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...