在iOS应用中,我使用的是用C语言编写的第三方SDK。
作为SDK方法调用的结果,我收到一个builtin
数组(参见下面的示例)。
我需要将此数组转换为Objective-C String(NSString)以保存它,然后将其转换回C以将其作为参数传递给另一个SDK方法。
我已经看到了将C字符串转换为Objective-C的多种方法。
__import__
但是它们似乎都没有在中间允许unsigned char
(空终止字符)(参见下面示例中的[29])。
unsigned char数组响应示例:
NSString *example1 = [NSString stringWithFormat:@"%s", myArray]; // "8oFDO{c."rägÕªö"
NSString *example2 = [[NSString alloc] initWithBytes:myArray length:sizeof(myArray) encoding:NSASCIIStringEncoding]; // "8oFDO{c."rägÕªö"
...
如何从C转换为Objective-C,然后从Objective-C转换回C?
答案 0 :(得分:1)
这个unsigned char
数组根本不是一个字符串。您应该像处理void *
一样处理它,并使用NSData
来存储这些参数。