Setting delegate to nil in dealloc

前端 未结 1 1006
别那么骄傲
别那么骄傲 2020-12-10 15:32

In Objective-C, I understand that if an object sets itself as the delegate of another object, it should set that object\'s delegate to nil in its dealloc<

相关标签:
1条回答
  • 2020-12-10 15:54

    It's a defensive programming move. It's clearing out the reference to the delegate object incase something else in your object tries to access the delegate after you've told it that you're done with it. As part of your dealloc you might have a method or do something that triggers a KVO notification that makes a call to the delegate. So setting the delegate's reference to nil prevents that from happening. If it did happen you could end up with some oddball crashes that are fun to reproduce and fix.

    0 讨论(0)
提交回复
热议问题