Obj-C:与@“string”

我见过有人做类似[NSString stringWithString:@"some string"] 。 为什么不只是做@"some string"

举个例子,看看facebook-ios-sdk

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

其实没有什么区别。 [NSString stringWithString: str]只是不做任何事情,如果str已经是不可变的,就返回str

除了需要额外的按键之外没有任何区别。 事实上,用一个常量string作为参数(或者一个不可变的string),你只需要获得另一个指向参数的指针。

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

 [NSMutableString stringWithString: @"fdghdfjl"]; 

会给你一个可变的autoreleased原件副本。

有一件事要注意关于stringWithString:它会抛出一个exception,如果源string是零。