Stringhe Objective-C

La stringa nel linguaggio di programmazione Objective-C è rappresentata utilizzando NSString e la sua sottoclasse NSMutableString fornisce diversi modi per creare oggetti stringa. Il modo più semplice per creare un oggetto stringa è usare il costrutto Objective-C @ "..." -

NSString *greeting = @"Hello";

Di seguito è mostrato un semplice esempio per creare e stampare una stringa.

#import <Foundation/Foundation.h>

int main () {
   NSString *greeting = @"Hello";
   NSLog(@"Greeting message: %@\n", greeting );

   return 0;
}

Quando il codice precedente viene compilato ed eseguito, produce un risultato come segue:

2013-09-11 01:21:39.922 demo[23926] Greeting message: Hello

Objective-C supporta un'ampia gamma di metodi per manipolare le stringhe -

Sr.No. Metodo e scopo
1

- (NSString *)capitalizedString;

Restituisce una rappresentazione in maiuscolo del destinatario.

2

- (unichar)characterAtIndex:(NSUInteger)index;

Restituisce il carattere in una data posizione della matrice.

3

- (double)doubleValue;

Restituisce il valore in virgola mobile del testo del destinatario come double.

4

- (float)floatValue;

Restituisce il valore in virgola mobile del testo del destinatario come float.

5

- (BOOL)hasPrefix:(NSString *)aString;

Restituisce un valore booleano che indica se una determinata stringa corrisponde ai caratteri iniziali del destinatario.

6

- (BOOL)hasSuffix:(NSString *)aString;

Restituisce un valore booleano che indica se una determinata stringa corrisponde ai caratteri finali del destinatario.

7

- (id)initWithFormat:(NSString *)format ...;

Restituisce un oggetto NSString inizializzato utilizzando una determinata stringa di formato come modello in cui vengono sostituiti i valori dell'argomento rimanenti.

8

- (NSInteger)integerValue;

Restituisce il valore NSInteger del testo del destinatario.

9

- (BOOL)isEqualToString:(NSString *)aString;

Restituisce un valore booleano che indica se una determinata stringa è uguale al destinatario utilizzando un confronto letterale basato su Unicode.

10

- (NSUInteger)length;

Restituisce il numero di caratteri Unicode nel ricevitore.

11

- (NSString *)lowercaseString;

Restituisce la rappresentazione in minuscolo del ricevitore.

12

- (NSRange)rangeOfString:(NSString *)aString;

Trova e restituisce l'intervallo della prima occorrenza di una determinata stringa all'interno del ricevitore.

13

- (NSString *)stringByAppendingFormat:(NSString *)format ...;

Restituisce una stringa creata aggiungendo al ricevitore una stringa costruita da una data stringa di formato e dai seguenti argomenti.

14

- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;

Restituisce una nuova stringa creata rimuovendo da entrambe le estremità dei caratteri del ricevitore contenuti in un determinato set di caratteri.

15

- (NSString *)substringFromIndex:(NSUInteger)anIndex;

Restituisce una nuova stringa contenente i caratteri del ricevitore da quello a un dato indice fino alla fine.

L'esempio seguente fa uso di alcune delle funzioni sopra menzionate:

#import <Foundation/Foundation.h>

int main () {
   NSString *str1 = @"Hello";
   NSString *str2 = @"World";
   NSString *str3;
   int  len ;

   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

   /* uppercase string */
   str3 = [str2 uppercaseString];
   NSLog(@"Uppercase String :  %@\n", str3 );

   /* concatenates str1 and str2 */
   str3 = [str1 stringByAppendingFormat:@"World"];
   NSLog(@"Concatenated string:   %@\n", str3 );

   /* total length of str3 after concatenation */
   len = [str3 length];
   NSLog(@"Length of Str3 :  %d\n", len );

   /* InitWithFormat */
   str3 = [[NSString alloc] initWithFormat:@"%@ %@",str1,str2];	
   NSLog(@"Using initWithFormat:   %@\n", str3 );
   [pool drain];

   return 0;
}

Quando il codice precedente viene compilato ed eseguito, produce un risultato come segue:

2013-09-11 01:15:45.069 demo[30378] Uppercase String :  WORLD
2013-09-11 01:15:45.070 demo[30378] Concatenated string:   HelloWorld
2013-09-11 01:15:45.070 demo[30378] Length of Str3 :  10
2013-09-11 01:15:45.070 demo[30378] Using initWithFormat:   Hello World

È possibile trovare un elenco completo dei metodi correlati a Objective-C NSString in NSString Class Reference.