nsstring和const char*转换

use*_*171 17 iphone

我尝试将nsstring转换为const char*.

1-我添加一个nsstring和一个整数
2-然后我将这个新的nsstring转换为const char*
3-我有一个对象,我将这个新的nsstring属性作为我的对象的名称.
4-我在另一个函数中使用此对象

NSString*firstName = [NSString stringWithFormat:@"Name%d",1];
const char*secondName = [firstName cString];
myobject->的setName(secondName);

问题:
当我在我的函数中使用我的对象时,1- secondName为null.
2-但如果我将firstName替换为:firstName ="Name1";
3-它的工作原理

问题B
1-如果我替换const char*secondName = [firstName cString];
by const char*secondName = [macString UTF8String];
2-即使我有firstName ="Name1";
3-这不行!!

任何的想法 ??

谢谢

:=)

Mik*_*rba 65

使用NSString类中的cStringUsingEncoding:

NSString *myString = @"Hello";
const char *cString = [myString cStringUsingEncoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

  • 如果使用NSASCIIStringEncoding或类似文件,请注意文档中的以下部分:_Returns NULL如果接收器无法无损转换为encoding_ (5认同)

Vde*_*edT 15

const char*是常量,无论如何都不能指定它们!

尝试传递(const char*)[firstName UTF8String给你的方法


rya*_*ins 8

NSString* firstName = [NSString stringWithFormat: @"Name%d", 1];

const char* secondName = [firstName UTF8String];

UTF8String returns a const char:   - (const char *)UTF8String
Run Code Online (Sandbox Code Playgroud)