NSString* Test=[NSString stringWithString:@"Words"];
已經超過
NSString* [email protected]"Words";
任何優勢,或只是多餘的?
NSString* Test=[NSString stringWithString:@"Words"];
已經超過
NSString* [email protected]"Words";
任何優勢,或只是多餘的?
這是多餘的。 NSString
對象是不可變的(無法更改),所以沒有任何優勢可以直接使用文字。
如果你做了而下面,:
NSMutableString *test = [NSMutableString stringWithString:@"Words"];
那麼這是一個不同的故事。
當然,對於你的「不同的故事」,「[@」Words「mutableCopy]'更簡潔,意圖更清晰。 –
@HotLicks但是遠離OP自己的示例代碼... – trojanfoe
任何現代ObjC編譯器會警告你,如果你嘗試實例化一個像這樣的字符串...
使用「stringWithString:」用文字是多餘的
使用@"literals"
除非你確實需要輸入,一拉 「操作」 ......
NSString * w = [NSString stringWithUTF8String:"Words"];
或
NSString * join = [NSString stringWithFormat:@"con%@enate", @"cat"]
不.NSString是不可變的,所以製作副本沒有任何用處(除了咀嚼時間/空間)。同樣,假設'someString'是一個(不可變的)NSString,非常流行的'[NSString stringWithFormat:@「%@」,someString]'是浪費時間。我今天早些時候看到,'[NSString stringWithFormat:someString]'是非常危險的,因爲'someString'可能包含'%'字符。 –