Tengo un array que almacena cada uno de los dígitos de un número de teléfono como una cadena. Luego me pase el número de teléfono dígitos de la cadena como argumento para objectAtIndex: método de NSArray como este: [myArray objectAtIndex: [myString intValue]]; El compilador me dice que necesita para lanzar la Cadena pero yo ya estoy haciendo eso. Lo que está mal?

Actualización:

Aquí está mi actual línea de código:

NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:[charHolder objectAtIndex:[[phoneNumDigits objectAtIndex:i]intValue]]];

Aquí es donde está el error, phoneNumDigits es una matriz de cada uno de los dígitos del número de teléfono, charHolder es la matriz de la celebración de la matriz de letras asociadas con cada uno de los dígitos.

  • ¿Cuál es el valor real de myString?
  • el código nos ayudará a ayudar a usted y por favor poner el código fuente de las piezas en el ‘código’ etiquetas
  • Es que el código real, o es que su reescribir su código? Si usted podría publicar un fragmento de aquí, que debe ayudar mucho.
  • Usted necesita para mostrar donde se puede inicializar myString
  • eso no es mi código actual, lo voy a publicar en un segundo
  • Y de no ser un dolor, pero ¿cuál es el error real?
  • sería genial para la próxima vez que haga una pregunta si aceptan una respuesta aquí.

InformationsquelleAutor GeeGoldz | 2011-01-26

2 Comentarios

  1. 6

    Tu pregunta es un poco confusa para mí. Aquí es cómo entiendo lo que quieres hacer:

    Tiene una NSArray nombre phoneNumDigits. Esta matriz contiene un par de NSString objetos. Cada cadena es algo así como @"1" o @"4" y representa un solo dígito de un número de teléfono.

    Ahora que quiere convertir a cada uno de los dígitos de las cadenas a int o NSInteger y desea almacenar estos números enteros en otra matriz.

    Si he entendido bien, aquí está mi respuesta:

    Usted no puede hacer exactamente lo que desea, porque no se puede poner un tipo de datos simple como un int o un float en un NSArray.

    Por eso no es de la clase contenedora NSNumber. Puede empaquetar un simple int en un NSNumber y almacenar este NSNumber en un NSArray.

    Por lo que para obtener su cadena de dígitos de la phoneNumDigits en el tmp matriz puede utilizar este código:

    for (NSString *digitAsString in phoneNumDigits)
    {
        NSNumber *digitAsNumber = [NSNumber numberWithInt:[digitAsString intValue]];
        [tmp addObject:digitAsNumber];
    }

    Para obtener el ints fuera de la tmp-NSArray utilizaría

    int digit = [[tmp objectAtIndex:idx] intValue];

    Espero que esto ayude, pero no estoy seguro de entender lo que quieres hacer aquí. Yo podría estar completamente ausente el punto. Tal vez usted podría compartir un poco más de código.

  2. 1
    NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:[charHolder objectAtIndex:[[phoneNumDigits objectAtIndex:i]intValue]]]; 

    objectAtIndex devuelve un objeto genérico (id). No tiene idea de que el objeto de la matriz es una cadena, ya que podría ser cualquier cosa. Por lo que necesita para lanzarla. O para aumentar readabilty, crear variables para ellos. Por ejemplo:

    int phoneNumberDigit = [phoneNumDigits objectAtIndex:i];
    NSArray *chars = [charHolder objectAtIndex:phoneNumberDigit];
    NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:chars];

Dejar respuesta

Please enter your comment!
Please enter your name here