Ciągi Objective-C

Łańcuch w języku programowania Objective-C jest reprezentowany za pomocą NSString, a jego podklasa NSMutableString zapewnia kilka sposobów tworzenia obiektów ciągu. Najprostszym sposobem utworzenia obiektu ciągu znaków jest użycie konstrukcji Objective-C @ „...” -

NSString *greeting = @"Hello";

Poniżej przedstawiono prosty przykład tworzenia i drukowania łańcucha.

#import <Foundation/Foundation.h>

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

   return 0;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje wynik w następujący sposób -

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

Objective-C obsługuje szeroką gamę metod manipulowania napisami -

Sr.No. Metoda i cel
1

- (NSString *)capitalizedString;

Zwraca reprezentację odbiorcy zapisaną wielkimi literami.

2

- (unichar)characterAtIndex:(NSUInteger)index;

Zwraca znak z podanej pozycji w tablicy.

3

- (double)doubleValue;

Zwraca wartość zmiennoprzecinkową tekstu odbiorcy jako podwójną.

4

- (float)floatValue;

Zwraca wartość zmiennoprzecinkową tekstu odbiorcy jako liczbę zmiennoprzecinkową.

5

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

Zwraca wartość logiczną wskazującą, czy podany ciąg pasuje do początkowych znaków odbiornika.

6

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

Zwraca wartość logiczną, która wskazuje, czy podany ciąg pasuje do końcowych znaków odbiornika.

7

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

Zwraca obiekt NSString zainicjowany przy użyciu danego ciągu formatu jako szablonu, w którym są podstawiane pozostałe wartości argumentów.

8

- (NSInteger)integerValue;

Zwraca wartość NSInteger tekstu odbiorcy.

9

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

Zwraca wartość logiczną wskazującą, czy dany ciąg jest równy adresatowi przy użyciu dosłownego porównania opartego na standardzie Unicode.

10

- (NSUInteger)length;

Zwraca liczbę znaków Unicode w odbiorniku.

11

- (NSString *)lowercaseString;

Zwraca odwzorowanie adresata zapisane małymi literami.

12

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

Znajduje i zwraca zakres pierwszego wystąpienia danego ciągu w odbiorniku.

13

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

Zwraca ciąg utworzony przez dołączenie do odbiornika ciągu utworzonego z danego ciągu formatu i następujących argumentów.

14

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

Zwraca nowy ciąg utworzony przez usunięcie z obu końców znaków odbiorcy zawartych w danym zestawie znaków.

15

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

Zwraca nowy ciąg zawierający znaki odbiorcy od tego pod danym indeksem do końca.

Poniższy przykład wykorzystuje kilka z wyżej wymienionych funkcji -

#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;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje wynik w następujący sposób -

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

Pełną listę metod związanych z Objective-C NSString można znaleźć w dokumencie NSString Class Reference.