【发布时间】:2011-12-22 14:36:48
【问题描述】:
我有一个我想要作为字节数组的字符串。到目前为止,我已经使用 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 的 - 但我不确定如何找到 malloc 的内存量。我知道有[NSString lengthOfBytesUsingEncoding:] 和[NSString maximumLengthOfBytesUsingEncoding:] 但我不知道这些是否是我需要使用的方法并且不完全理解它们之间的区别。我假设这将与maxLength 的值相同。其余参数在文档中是有意义的。任何帮助都会很棒。谢谢。
【问题讨论】:
标签: objective-c cocoa character-encoding nsstring