You should always use properties. I know that with ARC use an ivar seems to equal to use a property, but it's not!!!!
Properties have a lot of options, one that is really important is atomic/nonatomic. Quoting another answer on stack:
With "atomic", the synthesized setter/getter will ensure that a whole
value is always returned from the getter or set by the setter,
regardless of setter activity on any other thread. That is, if thread
A is in the middle of the getter while thread B calls the setter, an
actual viable value -- an autoreleased object, most likely -- will be
returned to the caller in A.
The other really important is copy
if you copy an object you can be sure (almost) that this object didn't change from the time you passed in.
I love properties also because they are method and you can override them. Sometime when I write GUI elements I like just to expose just a property like "text". Whit an overriden setter you can pass the "text" directly to the label or textfield that it should show.
Propeties give you a lot benefits and since the newer version of Xcode the ivar is automatically created.