前言
从ChatRoomInfoViewController 探索
Nov 19 13:16:31 iPhone WeChat[2804]
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);
AddMemLogic
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);}
值得重点研究的方法
ChatRoomInfoViewController loadMemberList
AddMemLogic start
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;
}
MultiSelectContactsViewController
r6 = [[MultiSelectContactsViewController alloc] init];
MMConfigMgr
r5 = [[r10 getService:[MMConfigMgr class]] retain];
r8 = [[MMUINavigationController alloc] initWithRootViewController:r6];
[stack[2008] PresentModalViewController:r8 animated:0x1];