Извините, что добавляю второй ответ, но это оказывается более запутанным, чем я думал.Оказывается, вы видите измененное поведение (возможно, ошибку?) В Xcode 4.3.
В Xcode 4.2 конвертер предложил бы изменить (nonatomic, retain)
на (nonatomic, strong)
.Но в Xcode 4.3 он предлагает изменить его на (nonatomic)
;Думаю, если вы этого не хотите, перед преобразованием вам нужно изменить retain
на strong
.
С другой стороны, в Xcode 4.2 только (nonatomic)
было абсолютно недопустимо для синтезированногоимущество;в Xcode 4.3 это не так: вы получаете предупреждение, но оно предполагает, что вы имеете в виду assign
, и поэтому оно не является незаконным.
Таким образом, изменилось, как работает ARC в LLVM 3.1 и сопровождающемизменить в Xcode 4.3 ARC конвертер.