IT박스

목표 C : NSString에서 NSMutableString 변환

itboxs 2020. 11. 28. 08:52
반응형

목표 C : NSString에서 NSMutableString 변환


NSMutableString이 있는데 어떻게 NSString으로 변환 할 수 있습니까?


다음을 통해 :

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];

참고 URL : https://stackoverflow.com/questions/5583510/objective-c-convert-a-nsmutablestring-in-nsstring

반응형