Skip to content

YZPullDownMenu.m中解决循环引用问题#4

Open
CoderHRXu wants to merge 2 commits into
iThinkerYZ:masterfrom
CoderHRXu:master
Open

YZPullDownMenu.m中解决循环引用问题#4
CoderHRXu wants to merge 2 commits into
iThinkerYZ:masterfrom
CoderHRXu:master

Conversation

@CoderHRXu

Copy link
Copy Markdown

之前有打过断点,在viewcontroller的dealloc方法,lldb调试,发现添加的子控制还是存在,就算主动调用removeFromParentViewController还是不会释放,导致从导航控制器pushu第二次过来,更改标题发通知的时候,object为self,传是第一次push进来的内存地址,然后就是去索引取不到,取按钮就会报错数组越界。NSInteger col = [Weakself.controllers indexOfObject:note.object];UIButton *btn = Weakself.menuButtons[col]; 经查证是因为YZPullDownMenu.m处理通知监听使用的block,在block中self.controllers会强引用子控制器。把block处理通知替换成指定方法就OK了。viewcontroller的dealloc时候子控制器也释放,下次导航控制器push的时候就没事了

@xiaopin xiaopin mentioned this pull request Oct 18, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant