Obj-C:[NSString stringWithString:@“string”] vs. @“string”

时间:2011-06-08 14:56:30

标签: objective-c cocoa-touch ios nsstring stringwithstring

我见过人们做[NSString stringWithString:@"some string"]之类的事情。为什么不做@"some string"

例如,请查看facebook-ios-sdk

+[NSString stringWithString:] -- what's the point?是一个类似的问题,但没有一个答案涉及[NSString stringWithString:@"some string"]@"some string"

3 个答案:

答案 0 :(得分:8)

实际上没有区别。如果[NSString stringWithString: str]已经不可变,str只会执行任何操作并返回str

答案 1 :(得分:6)

除了需要额外的击键之外没有区别。实际上,使用常量字符串作为参数(或不可变字符串),您只需获得另一个指向该参数的指针。

该方法的主要用途是在子类中:

[NSMutableString stringWithString: @"fdghdfjl"];

将为您提供原始的可更改的自动释放副本。

答案 2 :(得分:3)

有关stringWithString:的一点要注意的是,如果源字符串为nil,它将抛出异常。