NSMutableString *chars=[ [NSMutableString alloc] initWithString:@""] ;
NSString *temp=[[self convertDecimalToChar:(digitizer%10)] copy]; //temp is good
[chars stringByAppendingString:temp]; //chars is empty
知道这里有什么问题吗?谢谢你。
NSMutableString *chars=[ [NSMutableString alloc] initWithString:@""] ;
NSString *temp=[[self convertDecimalToChar:(digitizer%10)] copy]; //temp is good
[chars stringByAppendingString:temp]; //chars is empty
知道这里有什么问题吗?谢谢你。
这一行:
[chars stringByAppendingString:temp];
应该返回一个组合两个字符串的字符串。
- (NSString *)stringByAppendingString:(NSString *)aString
如果您只想将一个字符串附加到您的字符串,请执行以下操作:
[chars appendString:temp];
在此处查找文档:
该stringByAppendingString
方法位于非可变NSString
类上,其中非可变意味着您无法修改它。
因此,与大多数其他NSString
方法一样,它返回一个新NSString
对象,在这种情况下包含原始字符串以及您在参数中传递的任何内容。
但是,鉴于您实际上正在操作一个可变的NSMutableString
对象,您可能需要该方法:appendString:
[chars appendString:temp];
如果您查看此方法的文档,则需要执行以下操作:
chars = [chars stringByAppendingString:temp];
它返回一个结合了两个 NSString 的新 NSString,实际上并没有改变接收者。