diff --git a/Pod/Classes/OAStackView+Hiding.m b/Pod/Classes/OAStackView+Hiding.m index f64467a..f60d2af 100644 --- a/Pod/Classes/OAStackView+Hiding.m +++ b/Pod/Classes/OAStackView+Hiding.m @@ -20,7 +20,11 @@ - (void)addObserverForView:(UIView*)view { } - (void)removeObserverForView:(UIView*)view { - [view removeObserver:self forKeyPath:@"hidden"]; + @try { + [view removeObserver:self forKeyPath:@"hidden"]; + } @catch (NSException * e) { + NSLog(@"OAStackView: Unable to remove observer for view %@: %@", view, e); + } } - (void)addObserverForViews:(NSArray*)views { @@ -63,4 +67,10 @@ - (void)willRemoveSubview:(UIView *)subview { [self removeObserverForView:subview]; } +#pragma mark clean up + +- (void)dealloc { + [self removeObserverForViews:self.subviews]; +} + @end