nsstring and const char* conversion
i try to convert nsstring to const char*.
1- i add a nsstring and an integer together
2- then i convert this new nsstring to const char* 3- i have an object and i attribute this new nsstring as my object's name. 4- i use this object in another functionNSString* firstName = [NSString stringWithFormat: @"Name%d", 1];
const char* secondName = [firstName cString]; myobject->setName(secondName);
problem : A
1- secondName is null when i use my object in my function. 2- but if i replace firstName by : f开发者_运维知识库irstName = "Name1"; 3- it worksproblem B
1- if i replace const char* secondName = [firstName cString]; by const char* secondName = [macString UTF8String]; 2- even if i have firstName = "Name1"; 3- this is not working !!any idea ??
thank you
:=)
Use cStringUsingEncoding from the NSString class:
NSString *myString = @"Hello";
const char *cString = [myString cStringUsingEncoding:NSASCIIStringEncoding];
const char* are constant, you can't assign them in anyway !
Try passing (const char*)[firstName UTF8String
] to your method
NSString* firstName = [NSString stringWithFormat: @"Name%d", 1];
const char* secondName = [firstName UTF8String];
UTF8String returns a const char: - (const char *)UTF8String
Use this method:
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]);
精彩评论