2012-06-13 3 views
0

У меня есть NSString, что я хотел бы добавить { в начале его.NSMutableString Append Fails

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

str Это возвращает только с {. Почему это? Objective-C ОЧЕНЬ расстраивает то, как он предоставляет много способов сделать то же самое, но для ситуаций требуется другой способ.

Я попытался сделать [NSMutableString string] и добавить {, затем extracted, и он все еще не работает. Почему это не работает и что мне делать?

ответ

6

Возвращает новую строку, она не изменяет старую строку.

Все функции, которые начинаются с stringWith или arrayWith и т. Д., Создают новые объекты, а не изменяют старые объекты.

Для получения идеального, что вы хотите, более простое решение:

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

или:

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

(выпуска или autorelease '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]; 

Надеется, что это поможет вам