cks*_*ubs 5 c syntax objective-c
我正在浏览斯坦福iPhone播客并提出一些基本问题.
第一个:为什么没有简单的字符串连接?(或者我只是错过了吗?)
我需要帮助下面的NSLog,并且不知道它目前正在做什么(%@部分).您是否只需要在需要连接的地方替换那些,然后用逗号分隔最后的值?
NSString *path = @"~";
NSString *absolutePath = [path stringByExpandingTildeInPath];
NSLog(@"My home folder is at '%@'", absolutePath);
Run Code Online (Sandbox Code Playgroud)
而使用任何其他编程语言我都这样做:
NSLog(@"My home folder is at " + absolutePath);
Run Code Online (Sandbox Code Playgroud)
谢谢!(另外,熟悉Java/C#/ etc样式语法过渡到Objective-C的人有什么好的指南/参考资料吗?)
Pab*_*ruz 13
%@ 是NSString实例的格式字符串中的占位符.
当你做类似的事情时:
NSLog(@"My home folder is at '%@'", absolutePath);
Run Code Online (Sandbox Code Playgroud)
您告诉NSLog %@使用名为absolutePath的字符串替换占位符.
同样,如果您放置更多占位符,则可以指定更多值来替换这些占位符,如下所示:
NSString *absolutePath = @"/home/whatever";
NSLog(@"My home #%d folder is at '%@'", 5, absolutePath);
Run Code Online (Sandbox Code Playgroud)
将打印:
我的家#5在/ home /无论如何
一种简单的字符串连接方法:
NSString *s1 = @"Hello, ";
NSString *s2 = @"world.";
NSString *s = [NSString stringWithFormat:@"%@%@", s1, s2];
// s will be "Hello, world."
Run Code Online (Sandbox Code Playgroud)
您不能将+符号作为字符串连接运算符,因为Objective-C中没有运算符重载.
希望能帮助到你.