ios – 支持NSString连接多久?

前端之家收集整理的这篇文章主要介绍了ios – 支持NSString连接多久?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚在编辑的一些旧代码中遇到了这一行:
[UIImage imageNamed:@"data/visuals/interface/" @"backgroundViewController"];
                                             ^^^^
                                   "Oops,what have I done here?"

我以为我必须意外地将错误的地方粘贴在一起,但是撤消并没有改变这一点.出于好奇,我建立了这个程序,并且成功了!

Whaddyaknow? Obj-c有一个更简洁的连接字符串文字方法.

增加了一些测试:

一个简单的日志

NSLog(@"data/visuals/interface/" @"backgroundViewController");

data/visuals/interface/backgroundViewController

参数

NSURL *url = [NSURL URLWithString:@"http://" @"test.com" @"/path"];
NSLog(@"URL:%@",url);

URL:http://test.com/path

使用变量

NSString *s = @"string1";
NSString *s2 = @"string2";

NSLog(@"%@",s s2);

Doesn’t compile (not surprised by this one)

其他文字

NSNumber *number = @1 @2;

Doesn’t compile

一些问题

这个字符串连接是否记录在任何地方?
>支持多久了?
>什么是底层实现?我希望这将是[s1 stringByAppendingString:s2]
>是否被任何权威机构认为是良好做法?

解决方法

这种连接静态NSStrings的方法是一个编译时间编译器,已经有十多年了.它通常用于允许长的常量字符串被分割成几行.几十年来,“C”中已经有类似的功能.

在C编程语言书中,1988第二版,第38页描述了字符串连接,所以它已经存在了很长时间.

本书摘录:

String constants can be concatenated at compile time:

"hello," " world" is equivalent to "hello,world"

This is useful for spitting long strings across several source lines.

Objective-C是“C”的严格超集,所以一直支持“C”字符串连接,我的猜测是因为静态的NSString连接一直是可用的.

当用于将静态字符串分割成多行以便可读性时,这被认为是很好的做法.

原文链接:https://www.f2er.com/iOS/329221.html

猜你在找的iOS相关文章