По сути, вы этого не делаете.
NSString
- для строк корректно закодированных строковых данных; обычно UTF8 или UTF16. NSData
для произвольных двоичных данных.
Если вы хотите сохранить необработанные байты в NSString
, вам необходимо их кодировать, и base64
является одним из наиболее распространенных способов сделать это.