Ответ 1
assign - это правильная аннотация. Вы используете назначение для любых примитивных типов. Альтернативы (слабый, сильный/сохраняемый) зависят от свойства, указывающего на объект для работы. Я считаю, что компилятор даже не позволит вам объявить неправильный тип свойства для этого. Если вы действительно хотели, вы могли бы опустить назначение, поскольку оно по умолчанию.