Могу поспорить, что в данных вашего изображения есть несколько нулевых символов (0x00), и, как вы знаете, это терминатор строки, поэтому, когда вы запрашиваете строку C, вы, вероятно, получаете слишком мало данных.
Попробуйте что-то вроде
- (NSData *) dataUsingEncoding: (NSStringEncoding) кодирование;
генерировать ваши NSData.
Если это не сработает, вам нужно оценить, не приводит ли установка данных к NSString (со встроенными нулевыми символами) также к потере данных.
Как и один из других респондентов, возможно, будет хорошей идеей кодировать ваши данные в base-64 (если требуется использование строки для передачи данных img)
Удачи.