Назначение для примитивных значений, таких как BOOL, NSInteger или double. Для объектов используйте retain или copy, в зависимости от того, хотите ли вы сохранить ссылку на исходный объект или сделать его копию.
Единственное распространенное исключение - слабые ссылки, когда вы хотите сохранить указатель на объект, но не можете сохранить его из-за циклов ссылок. Примером этого является шаблон делегата, где объект (например, табличное представление) хранит указатель на свой делегат. Поскольку объект делегата сохраняет табличное представление, сохранение табличного представления делегатом будет означать, что ни один из них никогда не будет освобожден. Вместо этого используется слабая ссылка. В этой ситуации вы будете использовать assign при создании вашей собственности.