//有多个弹框时候 要保证每次是唯一对象
if (_payView) {
[_payView removeFromSuperview];
_payView=nil;
}
if (!_payView) {
_payView = [[YFPayView alloc] init];
__weak typeof(self)weakSelf = self;
//如果不是property 定义的变量 不能用weak blockSelf ->加属性的方式
__block CheckBankCardViewController *blockSelf = self;
_payView.payViewConformBlock = ^(NSString *getOutput1){
_getOutput1 = getOutput1;
[weakSelf checkPayPwd:blockSelf ->_getOutput1 AndTypeStr:strType];
};
_payView.payViewCancelBlock = ^(){
};
_payView.payViewForgetPwdBlock = ^{
//支付密码重置
YFModifyPwdViewController *vc = StoryboardName(@"YFModifyPwdViewController");
vc.step = StepType_MobileConform;
vc.title = @"支付密码重置";
[weakSelf.navigationController pushViewController:vc animated:YES];
};
}
[self.view addSubview:_payView];
一般情况 __weak typeof(self)weakSelf = self; 然后用weakSelf在block里面操作就可以了,但是发现
[weakSelf checkPayPwd:_getOutput1 AndTypeStr:strType]; 居然还是报错,查了下资料,发现_getOutput1这个变量不是@property定义的,而是定义的一般全局变量。这个场景为了消除警告,这么操作: blockSelf ->_getOutput1 这样就可以了。
__block CheckBankCardViewController *blockSelf = self;
[weakSelf checkPayPwd:blockSelf ->_getOutput1 AndTypeStr:strType];