2013-03-27 41 views
1
po self.URL.copy 
$1 = 0x1fc3ced0 http://maps.googleapis.com/maps/api/staticmap?&zoom=16&size=160x160&maptype=roadmap&sensor=true&center=-6.2032,106.7696&markers=size:small%7Ccolor:blue%7C-6.2032,106.7696 
$2 = 0x1fc3ced0 http://maps.googleapis.com/maps/api/staticmap?&zoom=16&size=160x160&maptype=roadmap&sensor=true&center=-6.2032,106.7696&markers=size:small%7Ccolor:blue%7C-6.2032,106.7696 
$3 = 0x1fc3ced0 http://maps.googleapis.com/maps/api/staticmap?&zoom=16&size=160x160&maptype=roadmap&sensor=true&center=-6.2032,106.7696&markers=size:small%7Ccolor:blue%7C-6.2032,106.7696 
(lldb) po self.URL 
$4 = 0x1fc3ced0 http://maps.googleapis.com/maps/api/staticmap?&zoom=16&size=160x160&maptype=roadmap&sensor=true&center=-6.2032,106.7696&markers=size:small%7Ccolor:blue%7C-6.2032,106.7696 

我以爲副本應返回的東西相同,但在不同的地址?爲什麼NSString的複製返回相同的字符串

回答

3

NSString是不可變的,所以沒有必要真正複製它。相反,它可能只是在內部增加引用計數。請檢查this question瞭解更多信息。

3

如果字符串是不可變的,那麼copy實際上只是一個retain。由於字符串的內容永遠不會改變,所以不需要複製字符串的數據。

相關問題