[英]How to convert an “initWithBytes” NSString to unsigned char*
如何将“initWithBytes”NSString转换为unsigned char *?
这是NSString如何产生的
NSString *byte = [[[NSString alloc] initWithBytes:inputbytes length:inputlength encoding:NSASCIIStringEncoding] autorelease];
其中包含不应在位级别更改的字节数据(将是base64转换的输入)
字节中的数据是0x01 0x00 0x01,3个字节
我想将它转换为unsigned char *
我该怎么办?
谢谢
一般来说,您应该直接使用NSString
,而不是尝试移入和移出Objective-C。 但有理由下降到C(例如使用C-only API),所以我会幽默你。 ;)
如果您只需要将数据传递给另一个函数,则可以执行以下操作:
const unsigned char *cString = (const unsigned char *)[byte cStringUsingEncoding: NSASCIIStringEncoding];
如果您需要修改C字符串(即让非const
),您将需要一个副本:
const unsigned char *cString = (const unsigned char *)strdup([byte cStringUsingEncoding: NSASCIIStringEncoding]);
然后当你完成它时free()
它:
free(cString);
请注意,这不会修改原始C字符串或您从中创建的NSString
。 如果需要NSString
可以修改,请使用NSMutableString
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.