Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSString到固定长度字符数组的转换_Objective C_Cocoa_Nsstring_Arrays - Fatal编程技术网

Objective c NSString到固定长度字符数组的转换

Objective c NSString到固定长度字符数组的转换,objective-c,cocoa,nsstring,arrays,Objective C,Cocoa,Nsstring,Arrays,我有一个包含如下字符数组的结构: char name[10]; 现在我需要一种方法将NSString转换为这种类型的字符串 我已经可以将此字符串转换为NSString: NSString *string = [[NSString alloc] initWithBytes:name length:10 encoding:NSASCIIStringEncoding]; 您可以使用getCString:maxLength:encoding:method of NSString执行此操作

我有一个包含如下字符数组的结构:

char name[10];
现在我需要一种方法将NSString转换为这种类型的字符串

我已经可以将此字符串转换为NSString:

NSString *string = [[NSString alloc] initWithBytes:name length:10      
encoding:NSASCIIStringEncoding];
您可以使用getCString:maxLength:encoding:method of NSString执行此操作:

NSString *string = [[NSString alloc] initWithBytes:name length: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);

这不起作用,因为在这种情况下我不能使用任何指针。你怎么说你不能使用任何指针?定义字符名[10]时,您已经在使用指针;它与char*名称非常相似;名称=mallocsizeofchar*10;线您能澄清一下您的评论吗?好的,字符串是作为数组分配的结构的一部分。当结构中没有指针时,我可以通过直接从内存中复制字节将整个数组保存到磁盘。对于指针,这不会这么简单,特别是对于几个指针。无论如何,感谢您的努力。这就是我现在如何将NSString转换为char数组的方法:char name[10];NSString*str=@John;[str getCString:name maxLength:10编码:NSASCIIStringEncoding];这是从一个char数组转换成NSString-NSString*stringB=[NSString-stringWithCString:name-encoding:NSASCIIStringEncoding];谢谢你的帮助。