Копия NSString, не копируя?

  NSString *myString = @"sample string";
  NSString *newString = [myString copy];

Если я установил точку останова после того, как эти две строки, указатель для myString совпадает с указателем для newString.

WTF? Разве копия NSString не предположена возвратить указатель на новый объект? Или я пропускаю что-то фундаментальное о том, как копия, как предполагается, работает?

8
задан Scotty Allen 26 March 2010 в 15:37
поделиться

1 ответ

Поскольку NSString не изменяемый , он может просто внутренне увеличить счетчик ссылок и быть с этим покончено.

Когда вы освобождаете одну из этих NSStrings, она может просто уменьшить счетчик ссылок - стандартное управление памятью.

Вы видите какие-нибудь проблемы с этим?

9
ответ дан 5 December 2019 в 08:51
поделиться