如何将“initWithBytes”NSString转换为unsigned char *?
这是NSString如何产生的
NSString *byte = [[[NSString alloc] initWithBytes:inputbytes length:inputlength encoding:NSASCIIStringEncoding] autorelease];
其中包含不应在位级别更改的字节数据(将是base64转换的输入)
字节中的数据是0x01 0x00 0x01,3个字节
我想将它转换为unsigned char *
我该怎么办?
谢谢
2 回答
一般来说,您应该直接使用
NSString
而不是尝试进出Objective-C . 但是有理由下降到C(例如使用仅限C的API),所以我会幽默你 . ;)如果您只需要将数据传递给另一个函数,则可以执行以下操作:
如果您需要修改C字符串(即使其不是
const
),您需要复制一份:然后
free()
当你完成它时:请注意,这不会修改原始C字符串或您从中创建的
NSString
. 如果您需要NSString
可以修改,请使用NSMutableString
.尝试使用NSString的cStringUsingEncoding:方法:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/uid/20000154-BAJHJHHD