+ All Categories
Home > Software > 02 ns string

02 ns string

Date post: 30-Jun-2015
Category:
Upload: noveo
View: 135 times
Download: 5 times
Share this document with a friend
Description:
NSString
15
iOS Internship 2014 NSString+NSMutableString Максим Забелин
Transcript
Page 1: 02   ns string

iOS Internship 2014NSString+NSMutableString

Максим Забелин

Page 2: 02   ns string

NSString+NsMutableString

C string

const char *cString = "Hello world";

NSString

NSString *objCString = @"Hello world";

C string VS NSString

Page 3: 02   ns string

FoundationNSString+NsMutableString

int year = 2014;NSString *message = [NSString stringWithFormat: @"Today is year %d", year];// Today is year 2014NSString *anotherMessage =

[NSString stringWithFormat: @"Previous message was '%@'", message];// Previous message was 'Today is year 2014'

это, наверное, самый часто используемый метод у строк

- stringWithFormat:

Page 4: 02   ns string

FoundationNSString+NsMutableString

Точно такие же, как у printf+ %@ для объектовОсновные:%d, %i - для int%f - для float%s - для строки C

Format specifiers

Page 5: 02   ns string

FoundationNSString+NsMutableString

NSRange

typedef struct _NSRange { NSUInteger location; NSUInteger length;} NSRange;

NSRange используется в методах, которые что-то ищут или заменяют.

Если ничего найти не удалось, они возвращают NSNotFound в location

Page 6: 02   ns string

FoundationNSString+NsMutableString

NSRange range = [@"Porsche Carrera" rangeOfString: @"Car"];// {.location = 8, .length = 3}

Поиск подстроки

Page 7: 02   ns string

FoundationNSString+NsMutableString

int length = [@"Hello world" length];// 11

unichar ch = [@"Abcdef" characterAtIndex:3];NSLog(@"%c", ch); // d

но они довольно редко используются, особенно второй

… и еще пара методов

Page 8: 02   ns string

FoundationNSString+NsMutableString

NSString *name = @"Steve";NSString *surname = @"Jobs";NSString *space = @" ";NSString *fullName = [[name stringByAppendingString:space]

stringByAppendingString:surname];// Steve JobsNSString *king = @"King";NSString *otherFullName = [[fullName stringByReplacingOccurrencesOfString:surname

withString:king] stringByReplacingOccurrencesOfString:space withString:@"n "];

// Steven King

методы, создающие новую строку из имеющейся, обычно начинаются со stringBy...

Создание новых строк на основе имеющихся

Page 9: 02   ns string

FoundationNSString+NsMutableString

NSString *car = @"Porsche Carrera";NSString *model = [car substringFromIndex:8]; //Carrera

Получение подстроки

Page 10: 02   ns string

FoundationNSString+NsMutableString

Смена регистра

NSString *st = @"sTRinG";NSString *lower = [st lowercaseString]; // stringNSString *upper = [st uppercaseString]; // STRINGNSString *capital = [st capitalizedString]; // String

Page 11: 02   ns string

FoundationNSString+NsMutableString

NSMutableString

Строка NSString неизменяема.Однако, у NSString есть подкласс NSMutableString - для изменяемых строк.

Page 12: 02   ns string

FoundationNSString+NsMutableString

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;- (void)deleteCharactersInRange:(NSRange)range;- (void)appendString:(NSString *)aString;- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);- (void)setString:(NSString *)aString;

Дополнительные методы

Page 13: 02   ns string

FoundationNSString+NsMutableString

NSMutableString *st = @"Mutable string";[st appendString:@" ****"];

Пример

Page 14: 02   ns string

FoundationNSString+NsMutableString

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with appendString:'

Пример

Page 15: 02   ns string

FoundationNSString+NsMutableString

NSMutableString *st = [@"Mutable string" mutableCopy];

или так:

NSString *st = [[NSMutableString alloc] initWithString: @"Mutable string"];

Правильная реализация


Recommended