You're accessing your instance variables directly, and using manual reference counting. This isn't going to work.
All of the memory management is done in the synthesised accessor methods, so you must use the property accessors, e.g:
self.currentValue = ....;
Never
_currentValue = ...;
Or you will be bypassing all of the retain / release calls that the accessors are doing for you.