前言code
從ChatRoomInfoViewController 探索get
Nov 19 13:16:31 iPhone WeChat[2804] <Warning>: KNHooklog :-(void)addMember(have 0 value) return:(null) object:<ChatRoomInfoViewController: 0x16925a00> ##########################################
void -[ChatRoomInfoViewController addMember](void * self, void * _cmd) { r0 = self; r7 = (sp - 0x14) + 0xc; r4 = sp - 0xc8; asm { bfc r4, #0x0, #0x3 }; sp = r4; r5 = r0; r5->m_bDeleteStatus = 0x0; loc_1c0d080(r5, @selector(updateMemberView), 0x0);
r4 = *ivar_offset(m_addMemLogic); if (*(r5 + r4) == 0x0) { loc_1c0d080(@class(AddMemLogic), @selector(alloc)); *(r5 + r4) = loc_1c0d080(); loc_1c0d090(*(r5 + r4), *(r5 + r4)); loc_1c0d080(*(r5 + r4), @selector(setM_delegate:), r5); loc_1c0d080(*(r5 + r4), @selector(setM_viewScene:), 0x2); }
值得重點研究的方法cmd
ChatRoomInfoViewController loadMemberList
void -[AddMemLogic start:](void * self, void * _cmd, void * arg2) { objc_storeStrong(*ivar_offset(m_arrMemberList) + self, arg2); r10 = [arg2 retain]; r6 = objc_loadWeakRetained(*ivar_offset(m_delegate) + self); r5 = [[r6 getViewController] retain]; [ChatRoomUtils openAddContactWithMemberList:r2 inViewController:r5 delegate:self]; [r10 release]; [r5 release]; loc_2868adc(r6, @selector(openAddContactWithMemberList:inViewController:delegate:), r10); return; }
r6 = [[MultiSelectContactsViewController alloc] init];
r5 = [[r10 getService:[MMConfigMgr class]] retain];it
r8 = [[MMUINavigationController alloc] initWithRootViewController:r6];
[stack[2008] PresentModalViewController:r8 animated:0x1];