我见过人们做[NSString stringWithString:@"some string"]
之类的事情。为什么不做@"some string"
?
例如,请查看facebook-ios-sdk
。
+[NSString stringWithString:] -- what's the point?是一个类似的问题,但没有一个答案涉及[NSString stringWithString:@"some string"]
与@"some string"
。
答案 0 :(得分:8)
实际上没有区别。如果[NSString stringWithString: str]
已经不可变,str
只会执行任何操作并返回str
。
答案 1 :(得分:6)
除了需要额外的击键之外没有区别。实际上,使用常量字符串作为参数(或不可变字符串),您只需获得另一个指向该参数的指针。
该方法的主要用途是在子类中:
[NSMutableString stringWithString: @"fdghdfjl"];
将为您提供原始的可更改的自动释放副本。
答案 2 :(得分:3)
有关stringWithString:
的一点要注意的是,如果源字符串为nil,它将抛出异常。