StringByAppendingString函数不起作用?

时间:2013-09-26 15:05:51

标签: objective-c

 NSMutableString *chars=[ [NSMutableString alloc] initWithString:@""]   ;
    NSString *temp=[[self convertDecimalToChar:(digitizer%10)] copy]; //temp is good
    [chars stringByAppendingString:temp]; //chars is empty

这里有什么想法吗? 谢谢。

3 个答案:

答案 0 :(得分:2)

这一行:

[chars stringByAppendingString:temp];

用来返回组合两个字符串的字符串。

- (NSString *)stringByAppendingString:(NSString *)aString

如果您只想在字符串中附加一个字符串,请执行以下操作:

[chars appendString:temp];

在此处查找文档:

NSmutableString

答案 1 :(得分:1)

stringByAppendingString方法位于非可变NSString类上,其中非可变意味着您无法修改它

因此,与大多数其他NSString方法一样,它返回一个新的NSString对象,在这种情况下包含原始字符串以及您在参数中传递的任何内容。

但是,鉴于您实际操作NSMutableString对象,其中 可变,您可能需要使用appendString:方法:

[chars appendString:temp];

答案 2 :(得分:0)

如果您查看此方法的documentation,则需要执行以下操作:

chars = [chars stringByAppendingString:temp];

它返回一个新的NSString,它结合了两个NSString,而不是实际更改接收器。