我尝试将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);
问题:A
当我在我的函数中使用我的对象时,1- secondName为null
2-但如果我将firstName替换为:firstName =“Name1”;
3-它的工作原理
任何想法?
谢谢
:=)
答案 0 :(得分:62)
使用NSString类中的cStringUsingEncoding:
NSString *myString = @"Hello";
const char *cString = [myString cStringUsingEncoding:NSASCIIStringEncoding];
答案 1 :(得分:15)
const char *是常量,无论如何都不能分配它们!
尝试将(const char*)[firstName UTF8String
]传递给您的方法
答案 2 :(得分:6)
NSString* firstName = [NSString stringWithFormat: @"Name%d", 1];
const char* secondName = [firstName UTF8String];
UTF8String returns a const char: - (const char *)UTF8String
答案 3 :(得分:0)
使用此方法:
char* MakeStringCopy (const char* string)
{
if (string == NULL)
return NULL;
char* res = (char*)malloc(strlen(string) + 1);
strcpy(res, string);
return res;
}
NSString *filePath = @"~/Documents/Image.png";
MakeStringCopy([filePath UTF8String]);