Я считаю значения по умолчанию (atomic, assign)
, однако вы не должны оставлять их пустыми.
Значение по умолчанию может измениться в любой момент, и вы пишете код, основанный на определении свойства.
Например, если вы полагаетесь на значение по умолчанию assign
, и по какой-либо причине в будущем оно изменится на retain
, тогда весь ваш код будет утекать.
И наоборот, если по умолчанию сохранено, и вы полагаетесь на него, и оно изменяется на присвоение, то ваш код будет аварийно завершать работу, когда вы неизбежно перепустите объект.
Не полагайтесь ни на какие значения по умолчанию, независимо от того, какими они могут быть.
Явно определите атрибуты ваших свойств.