У меня есть строка, которую я хочу в виде байтового массива.До сих пор я использовал NSData для этого:
NSString *message = @"testing";
NSData *messageData = [message dataUsingEncoding:NSUnicodeStringEncoding allowLossyConversion:YES];
NSUInteger dataLength = [messageData length];
Byte *byteData = (Byte*)malloc( dataLength );
memcpy( byteData, [messageData bytes], dataLength );
Но я знаю, что NSString имеет метод getBytes:maxLength:usedLength:encoding:options:range:remainingRange:
, который позволил бы мне пропустить использование NSData все вместе.Моя проблема в том, что я не знаю, как правильно установить все параметры.
Я предполагаю, что передаваемый массив указателей должен быть malloc'ом, но я не уверен, как найти, сколько памятитаНос.Я знаю, что есть [NSString lengthOfBytesUsingEncoding:]
и [NSString maximumLengthOfBytesUsingEncoding:]
, но я не знаю, нужны ли мне эти методы, и не до конца понимаю разницу между ними.Я предполагаю, что это будет то же значение, что и maxLength
.Остальные параметры имеют смысл из документации.Любая помощь будет отличной.Благодаря.