Преобразование большого NSString в NSData в классе службы уведомлений

Я получаю полезную нагрузку NSString большого размера в полезной нагрузке тела push-уведомления, которую мне нужно преобразовать в NSData, а затем сохранить в corredata. Я использую метод:

dataUsingEncoding:NSUTF8StringEncoding

Это отлично работает для короткой строки, но для длинной строки размером 2049 КБ кажется, что половина моей строки преобразуется в NSData, а не все... когда я печатаю длину NSData, она дает 1000, кажется, максимальный размер 1000... , когда я конвертирую короткую строку в NSData и печатаю размер, который около 677, работает правильно.

Есть идеи?


person Steven    schedule 10.09.2020    source источник
comment
Отвечает ли это на ваш вопрос? Преобразование NSData в NSString — ограничение NSLog   -  person pkamb    schedule 11.09.2020
comment
Это просто проблема печати строки с помощью NSLog?   -  person pkamb    schedule 11.09.2020
comment
Нет, когда я конвертирую NSData в NSString, я вижу только половину моей строки, а не всю, когда я печатаю длину NSData, она дает 1000, длина меньше 1000 работает правильно.   -  person Steven    schedule 11.09.2020
comment
Это больше, чем охватывает вопрос. Преобразование строк в/из двоичных данных так не работает.   -  person Tom Harrington    schedule 11.09.2020
comment
Привет @ Том Харрингтон есть идеи?   -  person Steven    schedule 11.09.2020
comment
Опубликуйте полный код MCVE этого события.   -  person pkamb    schedule 11.09.2020
comment
@ Стивен Извините, если я не ясно выразился. Идея заключалась в том, чтобы предоставить более подробную информацию о своем приложении и о том, как оно управляет этими данными, чтобы, возможно, можно было определить, что пошло не так.   -  person Tom Harrington    schedule 11.09.2020
comment
Спасибо @ Том Харрингтон   -  person Steven    schedule 16.09.2020


Ответы (1)


Я собираюсь ответить здесь, это может помочь кому-то еще в будущем.

Основная проблема заключалась не в методе, при отладке информация правильно поступала в параметре body push-уведомления, но когда я пытался получить тело, например:

NSString* body = self.bestAttemptContent.body;

Основная проблема заключается в том, что когда тело строки имеет большой размер, оно автоматически обрезается, и я не нашел никакой документации по этому поводу... однако я добавил параметр «данные» в полезную нагрузку push-уведомления, и когда я получаю push-уведомление, я получить строку из параметра данных, и она правильно дает всю строку.

person Steven    schedule 11.09.2020