2010-09-05 48 views
1

可以一個NSString被重用這樣的:分配相同的NSString多次

NSString *string = @"first value"; 

NSLog(string); 

string = @"second value"; 

NSLog(string); 

測試時,這工作,但它是正確的編碼?

謝謝。

+0

下次請格式化您的代碼。 – 2010-09-05 01:09:30

回答

0

是的,你的例子是完全沒問題的。你對「不適當」的擔憂是什麼?

編輯:嚴格來說它可能是更安全的使用方法:

NSLog(@"%@", string); 

而不是僅僅直接登錄的字符串。不過,我不認爲你在問什麼。

+0

我的擔心是它不是一個NSMutableString。使用不同長度的字符串重新分配NSString是否會破壞內存中的任何內容? – Jim 2010-09-05 01:16:00

+0

@Jim,你不會修改你的代碼中的任何字符串;只是一個指向字符串的指針。 – 2010-09-05 01:35:02

+0

那麼「第一價值」會發生什麼?它留在記憶中還是被丟棄?我應該釋放它嗎? – Jim 2010-09-05 02:10:23

0

您不更改字符串。相反,你只是分配一個不同的地址到指針string

@"first String"@"second String"只是常數字符串。