从 NSMutableArray 构建 NSstring
我花了几个小时试图弄清楚这个问题,眼睛很痛——而且我在网上寻找答案已经有一段时间了(说出多少会很尴尬……)。 我想做的就是在 anExpression 上使用 for-in 循环进行枚举,它是一个包含 NSNumbers 和 NSStrings 的 NSMutableArray。 我的变量 ans 的 NSLog 打印返回一个空字符串。 我做错了什么?
NSString *ans = @"";
for (id obj in anExpression)
{
if ([obj isKindOfClass:[NSString class]])
[ans stringByAppendingString:(NSString *)obj];
if ([obj isKindOfClass:[NSNumber class]])
[ans stringByAppendingString:(NSString *)[obj stringValue]];
NSLog(@"String so far: %@ ", ans);
}
My eyes hurt from hours of trying to figure this one - and i have looked for an answer for quite a while on-line (it will be embarrassing to tell how much...).
all i am trying to do is to enumerate using a for-in loop on anExpression which is a NSMutableArray that holds NSNumbers and NSStrings.
my NSLog print for the variable ans returns an empty string.
What am i doing wrong?
NSString *ans = @"";
for (id obj in anExpression)
{
if ([obj isKindOfClass:[NSString class]])
[ans stringByAppendingString:(NSString *)obj];
if ([obj isKindOfClass:[NSNumber class]])
[ans stringByAppendingString:(NSString *)[obj stringValue]];
NSLog(@"String so far: %@ ", ans);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为你的意思
不仅仅是
NSStrings 是不可变的——你不能附加到它们。
-stringByAppendingString:
返回一个新字符串(然后您可以将其分配给ans
)。或者,您可以使用
NSMutableString
和-appendString:
方法。I think you mean
not just
NSStrings are immutable -- you can't append to them.
-stringByAppendingString:
returns a new string (which you could then assign toans
).Alternatively, you might use an
NSMutableString
and the-appendString:
method.嘿,抱歉,编码格式不好,再次发布......
Hey, sorry for the bad coding format, posting it again ...
stringByAppendingString: 方法返回一个新字符串,该字符串是通过将给定字符串附加到接收者而生成的。
所以你想要
ans = [ans stringByAppendingString:obj];
the method
stringByAppendingString:
returns a new string made by appending the given string to the receiver.so you want
ans = [ans stringByAppendingString:obj];