17

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

例如,查看facebook-ios-sdk.

+[NSString stringWithString:] -- 有什么意义?是一个类似的问题,但没有一个答案涉及[NSString stringWithString:@"some string"]@"some string".

4

3 回答 3

9

其实没有区别。[NSString stringWithString: str]什么都不做,str如果str已经不可变则返回。

于 2011-06-08T15:09:03.167 回答
7

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

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

[NSMutableString stringWithString: @"fdghdfjl"];

会给你一个可变的自动发布的原始副本。

于 2011-06-08T15:12:00.077 回答
3

需要注意的一件事stringWithString:是,如果源字符串为 nil,它将引发异常。

于 2011-11-04T00:48:41.060 回答