Turn on zombies and see if it catches the problem (EXC_BAD_ACCESS does not necessarily mean an over-released object, but it might).
What happens to the absolute value of the retain count of an object is irrelevant.
However, a strong
property implies that the object is retained, yes, if you assign through the setter (i.e. self.data = ... and not _data = ...).