我有一个包含这样的 char 数组的结构:
char name[10];
现在我需要一种将 NSString 转换为这种类型的字符串的方法。
我已经可以将此字符串转换为 NSString:
NSString *string = [[NSString alloc] initWithBytes:name length:10
encoding:NSASCIIStringEncoding];
我有一个包含这样的 char 数组的结构:
char name[10];
现在我需要一种将 NSString 转换为这种类型的字符串的方法。
我已经可以将此字符串转换为 NSString:
NSString *string = [[NSString alloc] initWithBytes:name length:10
encoding:NSASCIIStringEncoding];
您可以使用以下getCString:maxLength:encoding:
方法执行此操作NSString
:
char name[10];
NSString *s = @"Hello";
[s getCString:name maxLength:10 encoding:NSASCIIStringEncoding];
来回的完整转换过程:
// from NSString through char* to NSString again
NSString *text = @"long text or short";
const char *constName = [text UTF8String];
char *name = malloc(sizeof(unichar) * text.length + 1);
memcpy(name, constName, sizeof(unichar) * text.length);
NSString *fromChar = [NSString stringWithUTF8String:name];
NSLog(@"%@", fromChar);
free(name);