Как использовать NSString getBytes: maxLength: usedLength: encoding: options: range: ОстающийсяRange:

У меня есть строка, которую я хочу в виде массива байтов . До сих пор я использовал 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: ОстающийсяRange: , который позволяет мне пропустить использование NSData все вместе. Моя проблема в том, что я не знаю, как правильно установить все параметры.

Я предполагаю, что переданный массив указателей должен быть malloc'ed - но я не уверен, как узнать, сколько памяти нужно malloc. Я знаю, что есть [NSString lengthOfBytesUsingEncoding:] и [NSString maximumLengthOfBytesUsingEncoding:] , но я не знаю, нужны ли мне эти методы, и не совсем понимаю разницу между ними. Я предполагаю, что это будет то же значение, что и maxLength . Остальные параметры понятны из документации. Любая помощь была бы замечательной. Спасибо.

6
задан Brian 5 November 2011 в 10:40
поделиться