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

知道这里有什么问题吗?谢谢你。

4

3 回答 3

2

这一行:

[chars stringByAppendingString:temp];

应该返回一个组合两个字符串的字符串。

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

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

[chars appendString:temp];

在此处查找文档:

NSmutableString

于 2013-09-26T15:09:55.210 回答
1

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

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

但是,鉴于您实际上正在操作一个可变NSMutableString对象,您可能需要该方法:appendString:

[chars appendString:temp];
于 2013-09-26T15:15:11.770 回答
0

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

chars = [chars stringByAppendingString:temp];

它返回一个结合了两个 NSString 的新 NSString,实际上并没有改变接收者。

于 2013-09-26T15:09:36.727 回答