It should be
return _lastSyncDate;
in the getter method. By default, the synthesized instance variables have a leading underscore (and you already use that in the setter method).
Also, if you provide both setter and getter method, you have to synthesize the property explicitly:
@synthesize lastSyncDate = _lastSyncDate;
The same would happen if you provide the getter for a read-only property. The property is synthesized by the compiler only if a required accessor method is missing.