@weakify (self); [Self.customerviewmodel logincustomerlogicwithmobile:mobile Password:pass Word normalloginblock:^{@strongify (self); if([Self.customerviewmodel getresponsestatus] = =zsyresponsesuccess) { if(Self.navigationController.presentingViewController! =Nil) {[Self.navigationcontroller dismissviewcontrolleranimated:yes comple Tion:nil]; } Else{[Self.navigationcontroller popviewcontrolleranimated:yes]; } } Else{ //set gesture password failed, registration failed, stay in gesture password interfaceself.buttonNext.enabled =YES; [Self.txtloginpwd Becomefirstresponder]; }} forgetgesturepasswordblock:^{@strongify (self); __block Zsycustomerloginviewcontroller*point = self;//retain the pointer once </strong></span>[CLLOCKVC showsettinglockvcinvc:self successblock:^ (CLLOCKVC *lockvc, NSString *pwd) { //save gesture Password to serverGesturepasswordblock block =[Point.customerviewmodel Savegesturepasswordcallback]; Block (mobile, PWD); //after the password is saved successfully, exit the gesture password interface[CLLOCKVC dismiss:.3f Completion:nil]; Point= nil;//on the pointer release once, maintain the Retaincount conservation before and after }]; } Creategesturepasswordblock:^{[CLLOCKVC showsettinglock Vcinvc:self Successblock:^ (CLLOCKVC *lockvc, NSString *pwd) {@strongify (self); //save gesture Password to serverGesturepasswordblock block =[Self.customerviewmodel Savegesturepasswordcallback]; Block (mobile, PWD); //after the password is saved successfully, exit the gesture password interface[CLLOCKVC dismiss:.3f Completion:nil]; }]; }];
Block multi-layered nesting causes object not to release resolve