关于objective c:如何将“initWithBytes”NSString转换为unsigned char *

How to convert an “initWithBytes” NSString to unsigned char*

如何将"initwithbytes"nsstring转换为无符号char*?

以下是nsstring的生成方式

1
NSString *byte = [[[NSString alloc] initWithBytes:inputbytes length:inputlength encoding:NSASCIIStringEncoding] autorelease];

其中包含不应在位级别更改的字节数据(将是base64转换的输入)

字节中的数据为0x01 0x00 0x01,3字节

我想把它转换成一个无符号字符*

我该怎么做?

谢谢


一般讲,你应该直接与NSString工作而不是在和attempting搬到了Objective-C的原因。但有两滴下两个C(例如采用纯C语言API),所以你会humour。);

如果你只需要两个数据通的另一个功能,你可以这样做:

1
const unsigned char *cString = (const unsigned char *)[byte cStringUsingEncoding: NSASCIIStringEncoding];

如果你需要修改这两个C字符串(即使它的非const),你将需要做一份:

1
const unsigned char *cString = (const unsigned char *)strdup([byte cStringUsingEncoding: NSASCIIStringEncoding]);

然后free()信息。当你再次用它:

1
free(cString);

注意这将不会修改原始的C字符串或NSString从你做它。如果你需要的NSString你可以修改,使用NSMutableString


试试:"cstringusingencoding nsstring方法:

developer.apple.com http:/ / / /图书馆/ Mac #可可/参考文献/ / / / nsstring基础类的类的参考_ / / / /苹果nsstring.html # _参考/医生/羊毛/ 20000154 - bajhjhhd