Skip to content

Objective-C: Concatenar Cadenas

29 julio 2010

Una duda que se tiene siempre al empezar a trabajar con Objective-C es cómo concatenar cadenas de texto. La respuesta es muy sencilla, sólo debemos utilizar la clase apropiada, me explico.

En Objective-C tenemos dos clases principales para trabajar con cadenas: NSString y NSMutableString. NSMutableString es subclase de NSString.

Los objetos que creemos con NSString van a ser inmutables, es decir, una vez que le asignemos un valor, no puede cambiar. Podemos liberar el objeto y asignarle uno nuevo, pero no podemos modificar el valor que contiene, por tanto no vamos a poder concatenar otra cadena. Si necesitamos objetos cadena que puedan modificarse y evolucionar a lo largo de la ejecución de nuestro programa, debemos usar objetos de la clase NSMutableString, que van a comportarse igual que los objetos NSString (al ser una subclase…), pero que nos van a permitir modificarlos. De tal manera que vamos a poder: añadir caracteres, eliminar caracteres, concatenar cadenas, …

Este comportamiento de la clase NSString es muy parecido al comportamienteo que tiene en Java la clase String, cuyos objetos también son inmutables.

Por tanto, concatenar una cadena, será tan sencillo como:

NSMutableString* ms = [[NSMutableString alloc] initWithString:@"Cadena 1"];
[ms appendString:@" y Cadena 2"];

//Podemos mostrarlo por consola mediante:
printf("%s",[ms UTF8String]);
//o
NSLog(ms);

Tendremos métodos interesantes, tales como: deleteCharactersInRange: , insertString:atIndex: , replaceCharactersInRange:withString: , …

Más info

NSMutableString | Class Reference

NSString | Class Reference

Anuncios
5 comentarios leave one →
  1. Eduardo KÖnig permalink
    11 octubre 2012 11:13

    Gracias lo estaba buscando recien comienzo con Objective-C

  2. 5 mayo 2013 18:14

    Muchas gracias. Muy bien explicado.
    Una pregunta
    Aplicaría la misma forma para concatener un entero (1,3,4,5,6) con un string
    Saludos.

    • rekkeb permalink*
      5 mayo 2013 22:29

      Hola, gracias por tu comentario!
      Podrías utilizar la misma forma para concatenar enteros o floats, pero obviamente no podrías utilizar el metodo appendString:. Para ello, la clase NSMutableString tiene otro método que es:

      – (void)appendFormat:(NSString *)format …

      Que recibe como parámetro una cadena de formateo. Puedes encontrar más info sobre este tipo de cadenas muy habitual en C, C++ y Objective-C, en la siguiente URL de la documentación oficial de Apple:

      https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html#//apple_ref/doc/uid/20000943

      Un saludo!

Trackbacks

  1. ArBo | Primeros pasos con Objetive-C
  2. Primeros pasos con Objetive-C - arbo.com.ve

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: