Изменение свойств и переменных после миграции ARC

Я использовал параметр «Преобразовать в Objective C ARC» в Xcode 4.3, чтобы преобразовать проект, начатый в Xcode 4.0, для использования ARC. После исправления ошибок, обнаруженных инструментом, я прошел через процесс, в ходе которого инструмент миграции удалил все сообщения о выпуске, а также сохранил атрибуты в моих объявлениях свойств. Итак, теперь у меня есть все мои свойства, имеющие только атрибут (неатомный). Из чтения документации у меня до сих пор нет четкого ответа, что делать.

Итак, мой вопрос: Если вы опустите ключевое слово, касающееся семантики установщика (сильный, слабый, сохранить, назначить) в объявлении свойства, какой атрибут по умолчанию для свойств при использовании ARC?

Я в документации обнаружено, что атрибутом свойства по умолчанию является assign. Однако они также говорят, что теперь атрибутом по умолчанию для иваров, если вы его не укажете, будет strong.

Чтобы лучше объяснить мой вопрос, вот пример. В заголовочном файле у нас есть объявление:

@property (nonatomic) MyClass *objectToUse;

и в нашей реализации у нас просто

@synthesize objectToUse;

Если мы затем напишем внутри какого-либо метода:

self.objectToUse = [[MyClass alloc] init];

создали ли мы сильную (сохранить) или слабую (назначить) ссылку? Если вместо этого мы напишем

objectToUse = [[MyClass alloc] init];

с помощью ivar, изменится ли ситуация с политикой хранения объектов? Мне кажется, что теперь с ARC лучшая практика использования свойств для управления памятью уже не та.

12
задан lgdev 6 March 2012 в 11:50
поделиться