Это зависит. Я стараюсь всегда использовать свойства. Несмотря на некоторые (постоянные) издержки, он делает мой код более понятным. Если вы когда-нибудь захотите провести рефакторинг класса, вам будет намного легче, если пользователи (которые могут быть только вами) не зависят от вашего ивара.
Кроме того, если вы когда-нибудь захотите использовать Key-Value Observing, то наличие свойства с синтезированными средствами доступа гарантирует, что ваш класс совместим с KVO.