обсудить "stringByReplacingOccurferencesOfString: withString:" - PullRequest
2 голосов
/ 30 марта 2012

Я думаю о некоторых деталях, касающихся

stringByReplacingOccurferencesOfString: withString: в классе NSString

Согласно документу.

Возвращает новую строку, в которой все вхождения целевой строки в получателе заменены другой данной строкой.

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement

Параметры цель Строка для замены. замена Строка, на которую нужно заменить цель.

Мой вопрос заключается в том, что если строка замены не найдена в целевой строке. Если бы были некоторые побочные эффекты для вызова этой функции.

Спасибо

Например

    NSString *myString = [NSString stringWithString:@"Hello my string"];
    NSString *myReplacementString = [myString stringByReplacingOccurrencesOfString:@"NOTFOUND" withString@"Any side effect?"];
    NSLog(@"my replacement string is %@", myReplacementString);

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Эта функция не имеет побочных эффектов, и если строка поиска не найдена в получателе, получатель будет возвращен без изменений.

1 голос
/ 30 марта 2012

Побочных эффектов нет: если заменяемая подстрока не встречается в исходной строке, вы получите NSString, идентичный тому, с которого вы начали.

Действительно, (этоэто деталь реализации, и вы не должны зависеть от нее, но) вы даже не получите копию исходной строки, но получите указатель на ту же самую строку.

1 голос
/ 30 марта 2012
  1. myString, target и replacement не изменяются независимо от того, найдено совпадение или нет:

    • Метод не изменяетсястрока myString на месте, но создает новую строку, которая будет содержать результат.

    • target и replacement являются параметрами метода, и их значения не изменяются.

    • myString, target и replacement - неизменяемые строки.

  2. Нет ошибокили исключения, если совпадений не найдено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...