gpt4 book ai didi

objective-c - 如何将 "initWithBytes"NSString 转换为 unsigned char*

转载 作者:行者123 更新时间:2023-11-28 22:54:34 26 4
gpt4 key购买 nike

如何将“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

关于objective-c - 如何将 "initWithBytes"NSString 转换为 unsigned char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com