【问题标题】:Duplicate NSString in Objective-C [duplicate]Objective-C中的重复NSString [重复]
【发布时间】:2023-04-08 18:46:01
【问题描述】:

会使用

NSString* Test=[NSString stringWithString:@"Words"];

有任何优势
NSString* Test=@"Words";

还是只是多余的?

【问题讨论】:

  • 没有。 NSString 是不可变的,因此复制没有任何目的(除了消耗时间/空间)。同样,假设someString 是一个(不可变的)NSString,那么流行的[NSString stringWithFormat:@"%@", someString] 是浪费时间。我今天早些时候看到的[NSString stringWithFormat:someString] 是非常危险的,因为someString 可能包含% 字符。

标签: objective-c c nsstring


【解决方案1】:

这是多余的。 NSString 对象是不可变的(无法更改),因此我可以看到直接使用文字没有任何优势。

但是,如果您执行了以下操作:

NSMutableString *test = [NSMutableString stringWithString:@"Words"];

那就另当别论了。

【讨论】:

  • 当然,对于你的“不一样的故事”[@"Words" mutableCopy]更简洁,意图更清晰。
  • @HotLicks 但离 OP 自己的示例代码更远...
【解决方案2】:

如果您尝试实例化这样的字符串,任何现代 ObjC 编译器都会警告您...

将 'stringWithString:' 与文字一起使用是多余的

使用@"literals" 除非您确实需要对输入进行“操作”,哈哈...

NSString * w = [NSString stringWithUTF8String:"Words"];

NSString * join = [NSString stringWithFormat:@"con%@enate", @"cat"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2015-11-05
    • 2013-02-25
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多