Would с использованиемДубликат NSString в Objective C
NSString* Test=[NSString stringWithString:@"Words"];
имеют каких-либо преимуществ по сравнению с
NSString* [email protected]"Words";
или это просто излишним?
Would с использованиемДубликат NSString в Objective C
NSString* Test=[NSString stringWithString:@"Words"];
имеют каких-либо преимуществ по сравнению с
NSString* [email protected]"Words";
или это просто излишним?
Это избыточно. NSString
объекты неизменяемы (не могут быть изменены), поэтому нет преимуществ, которые я могу видеть, используя литерал напрямую.
Если вы сделали следующее, однако:
NSMutableString *test = [NSMutableString stringWithString:@"Words"];
Тогда это другая история.
Конечно, для вашей «другой истории» '[@" Words "mutableCopy]' более кратким и намерение более ясное. –
@HotLicks Но дальше от собственного примера кода OP ... – trojanfoe
Любой современный ObjC компилятор предупредит вас, если вы попытаетесь создать экземпляр строки, как это ...
Использование «stringWithString:» с буквальным избыточна
Используйте @"literals"
, если вам на самом деле должны "работать" на входе, а-ля ...
NSString * w = [NSString stringWithUTF8String:"Words"];
или
NSString * join = [NSString stringWithFormat:@"con%@enate", @"cat"]
№ NSString неизменен, поэтому копирование не предназначено (кроме того, чтобы пережевывать время/пространство). Точно так же популярная '[NSString stringWithFormat: @"% @ ", someString]' является пустой тратой времени, предполагая, что 'someString' является (неизменной) NSString. И тот, который я видел ранее сегодня, '[NSString stringWithFormat: someString]', абсолютно опасен, поскольку 'someString' может содержать'% 'символов. –