I don't know if this is exactly the problem or not, but this is certainly a major problem:
-(void)setDateOfErgPiece:(NSDate *)date {
self.dateOfErgPiece = date;
// ...
self.dateOfErgPiece = date;
is exactly equivalent to [self setDateOfErgPiece:date];
.
So, as the first line of the method, the method is calling itself. Infinite recursion.
This should be changed to the following...
-(void)setDateOfErgPiece:(NSDate *)date {
_dateOfErgPiece = date;
// ...
The other references to self.dateOfErgPiece
within the method seem to be okay, because they look to be calling the getter:
[self dateOfErgPiece];