iphone - Conversión nsstring y const char*
(4)
Use cStringUsingEncoding de la clase NSString:
NSString *myString = @"Hello";
const char *cString = [myString cStringUsingEncoding:NSASCIIStringEncoding];
Intento convertir nsstring a const char *.
1- agrego un nsstring y un entero juntos
2- luego convierto este nuevo nsstring a const char *
3- Tengo un objeto y atribuyo esta nueva cadena de caracteres como el nombre de mi objeto.
4- Utilizo este objeto en otra función.
NSString * firstName = [NSString stringWithFormat: @ "Name% d", 1];
const char * secondName = [firstName cString];
myobject-> setName (secondName);
problema: A
1- secondName es nulo cuando uso mi objeto en mi función.
2- pero si sustituyo el nombre por: firstName = "Name1";
3- funciona
problema B
1- si sustituyo const char * secondName = [firstName cString];
por const char * secondName = [macString UTF8String];
2- incluso si tengo el primer nombre = "Nombre1";
3- Esto no esta funcionando !!
alguna idea ??
gracias
: =)
Utilice este método:
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]);
const char * son constantes, no puedes asignarlas de ninguna manera!
Intente pasar (const char*)[firstName UTF8String
] a su método
NSString* firstName = [NSString stringWithFormat: @"Name%d", 1];
const char* secondName = [firstName UTF8String];
UTF8String returns a const char: - (const char *)UTF8String