Цель C: преобразование NSMutableString в NSString



У меня есть NSMutableString, как я могу преобразовать его в NSString?

468   2  

2 ответов:

либо через:

NSString *immutableString = [NSString stringWithString:yourMutableString];

или через:

NSString *immutableString = [[yourMutableString copy] autorelease];
//Note that calling [foo copy] on a mutable object of which there exists an immutable variant
//such as NSMutableString, NSMutableArray, NSMutableDictionary from the Foundation framework
//is expected to return an immutable copy. For a mutable copy call [foo mutableCopy] instead.

будучи подклассом NSString, однако вы можете просто привести его к NSString

NSString *immutableString = yourMutableString;

что делает его неизменным, хотя на самом деле он остается изменчивым.
Многие методы фактически возвращают изменяемые экземпляры, несмотря на то, что они объявлены возвращающими неизменяемые.

NSMutableString является наследником NSString, Так что вы можете просто набирать его:

NSString *string = (NSString *)mutableString;

в этом случае string будет псевдоним mutalbeString, но компилятор будет жаловаться, если вы попытаетесь вызвать любые изменяемые методы на нем.

кроме того, вы можете создать новую строку NSString с помощью метода класса:

NSString *string = [NSString stringWithString:mutableString];

Comments

    Ничего не найдено.