Objective-C:如何将字符串附加到NSMutableString?

Bre*_*nan 1 objective-c

网址下载

http://code.google.com/p/mwiphonesdk/source/browse/#svn/trunk/iMADE/PrepTasks/08

我在上面链接的位置有代码,我使用NSMutableString在下载数据时附加字符串.但我发现使用appendString不会增加可变字符串的长度.我一定做错了什么.

当我完成后,我需要将NSMutableString转换为NSString以返回它.我已经找到了这样做的例子,但我还没有看到.

我最熟悉Java和C#,其中有一个StringBuffer/StringBuilder,它允许你附加片段,它们只是在最后调用toString来获取一个String.在Objective-C中看起来并不那么容易.

NSString* str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];

#pragma mark TODO Confirm this is appending a value to the mutable string
[self.mutableString appendString:str];

NSLog(@"str length: %d, %d", [str length], [self.mutableString length]);
Run Code Online (Sandbox Code Playgroud)

上面是调用appendString的代码部分.

我看到str的长度> 0但调用appendString不会增加self.mutableString的长度.

我在这做错了什么?

fbr*_*eto 7

至于有一个NSMutableString*并且需要返回一个NSString*,前者是后者的子类,所以无论你在哪里看到NSString*一个NSMutableString*就足够了.

您的代码看起来没问题.我唯一能想到的是,初始化str变量时可能没有任何数据可言.在这种情况下,附加一个空字符串将对mutableString无效.

您还需要确保self.mutableString已正确分配和初始化.您可以向NSObject*s 发送消息,这些消息nil[self.mutableString length]返回0 时可能会产生误导.