繁体   English   中英

如何将“initWithBytes”NSString转换为unsigned char *

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM