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是零。