【发布时间】:2011-02-07 17:05:13
【问题描述】:
我正在研究斯坦福 iPhone 播客,并有一些基本问题。
第一:为什么没有简单的字符串连接? (或者我只是想念它?)
我需要以下 NSLog 的帮助,但不知道它当前在做什么(%@ 部分)。您是否只是在需要连接的地方替换它们,然后在末尾用逗号分隔值?
NSString *path = @"~";
NSString *absolutePath = [path stringByExpandingTildeInPath];
NSLog(@"My home folder is at '%@'", absolutePath);
而对于任何其他编程语言,我都会这样做:
NSLog(@"My home folder is at " + absolutePath);
谢谢! (此外,对于熟悉 Java/C#/etc 样式语法转换到 Objective-C 的人来说,有什么好的指南/参考资料吗?)
【问题讨论】:
-
为什么没有简单的字符串连接?
[@"foo" stringByAppendingString:@"bar"]。对真的。您还可以查看NSMutableString的文档,这会有所帮助。 -
你真的认为与“foo”+“bar”相比“容易”吗?但这是否比我采用的 '%@' 方法更好?
-
stringByAppendingString使意图比重载+更清晰。或者是.连接?在这方面,它比使用错误的重载运算符更容易。此外,如果您尝试将整数附加到字符串会发生什么?例如。"foo" + 6。将字符串附加到整数怎么样?使用stringByAppendingString意味着我不必考虑它。也许您的意思不是 更容易,而是 更懒。 -
stringByAppendingString 也更清楚地表明字符串是不可变的,使用“+”或“.”非常容易。在一个代码块中多次多次,并且幸福地不知道您正在创建的对象的数量。
标签: c objective-c syntax