Подтвердить что ты не робот

Obj-C: [NSString stringWithString: @ "string" ] vs. @ "string"

Я видел, как люди делали что-то вроде [NSString stringWithString:@"some string"]. Почему бы просто не сделать @"some string"?

В качестве примера рассмотрим facebook-ios-sdk.

+ [NSString stringWithString:] - в чем смысл? - это аналогичный вопрос, но ни один из ответов не отвечает [NSString stringWithString:@"some string"] vs. @"some string".

4b9b3361

Ответ 1

На самом деле нет никакой разницы. [NSString stringWithString: str] просто ничего не делает и возвращает str, если str уже неизменен.

Ответ 2

Там нет никакой разницы, кроме дополнительных штрихов. Фактически, с постоянной строкой в ​​качестве параметра (или неизменяемой строки) вы просто получаете другой указатель на параметр.

Основное использование метода в подклассах:

[NSMutableString stringWithString: @"fdghdfjl"];

предоставит вам измененную автореализованную копию оригинала.

Ответ 3

Одно замечание о stringWithString: заключается в том, что оно генерирует исключение, если исходная строка равна нулю.