2013-11-11 4 views
2

В чем разница между сильным против копирования в объективе-c? Какой из них я должен использовать?В чем разница между сильным и копированием?

Я знаю, что копия предотвращает изменение значения переменной экземпляра, если она установлена ​​с изменяемой строкой, которая позже изменилась сама. Что-нибудь еще?

+1

«С каким я должен пользоваться?» Это зависит от ваших потребностей. Иногда вам нужно убедиться, что у вашего класса есть своя копия или что она не может быть мутирована, в которой 'copy' является правильным. Иногда вам все равно и очень хочется «сильной» ссылки на какой-то другой объект. И «сильный», и «copy» (а также «слабый») имеют ситуации, в которых они, соответственно, подходят. Задайте вопрос о конкретном сценарии, и мы можем вам помочь (если это еще не очевидно после прочтения сообщения, на которое вас направил Джош). – Rob

ответ

1

strong увеличивается сохранить счетчик объекта на 1.

copy создает копию объекта с сохранить счетчик 1.

Если вы используете ARC, вы не можете получить доступ, чтобы сохранить счетчик, но подход является так же, как для MRC.

+0

Это неверно для копирования. – zaph

+0

Что плохого? –

+1

«копировать» неизменяемого объекта, такого как NSString, просто увеличивает количество удержаний. 'copy' изменчивого объекта делает неизменяемую копию с сохранением числа 1. Это свойство свойств неизменяемых объектов. – zaph

Смежные вопросы