-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
PO(NSStringFromCGPoint(self.tableView.contentOffset));
PO(NSStringFromUIEdgeInsets(self.tableView.contentInset));
while(false);
}
-(void)dealloc
{
PO(NSStringFromClass([self class]));
PO(@"Deallocated");
self.tableView.delegate=nil;
}
Here I need to set self.tableView.delegate = nil to avoid error.
I am aware, from my previous question, that self.tableView.delegate won't automatically become nill when the delegate is destroyed. That's because the type of delegate is assign reference instead of weak reference.
However, what about self.tableView?
The only thing with strong reference to self.tableView is it's superview that's owned by self and self itsef.
So when self is destroyed, self.tableView should be destroyed too and that means self.tableView.delegate will be gone too.
So why do I need to set self.tableView.delegate=nil;