2012-06-13 2 views
0

나는 {을 붙이고 싶습니다. NSString이 있습니다.NSMutableString 추가 실패

NSMutableString *str = [[NSMutableString alloc] initWithString:@"{"]; 
    [str stringByAppendingString:extracted]; 

이는 {str 반환합니다. 왜 그런가요? Objective-C는 같은 일을하는 여러 가지 방법을 제공하는 방법에 매우 실망 스럽지만 상황에 따라 다른 방법이 필요합니다.

[NSMutableString string]을 시도하고 {을 추가 한 다음 extracted을 추가했지만 여전히 작동하지 않습니다. 왜 이것이 작동하지 않고 어떻게해야합니까?

답변

6

은 새 문자열을 반환하지만 이전 문자열은 수정하지 않습니다.

stringWith 또는 arrayWith 등으로 시작하는 모든 함수는 이전 개체를 수정하는 대신 새 개체를 만듭니다.

당신이 원하는 acheive하려면 간단한 해결책은 다음과 같습니다

NSString *str = [NSString stringWithFormat:@"{%@", oldString]; 

나 :

NSMutableString *str = [@"{" mutableCopy]; 
[str appendString:blah]; 
+1

(릴리스 또는 오토 릴리즈'str' 경우 도움이 될 것입니다 ARC를 사용하지 않음) – bbum

5

NSString 메서드를 호출하면 새 문자열이 반환되고 해당 문자열이 수정되지 않습니다. appendString으로 전화해야합니다.

[str appendString:extracted]; 
1
// use it like this 

NSString *extracted = @"this is my string"; 
NSString *str = [[NSString alloc] initWithString:@"{"]; 
str = [str stringByAppendingString:extracted]; 

희망이 당신에게

관련 문제