UIViewController取消分配时如何在目标C中触发阻止事件。
例如 :
[PGMemberObj requestWithUserName:@"ab" andPassword:@"cc" andCallback:^(BOOL isSuc){
if (isSuc) {
NSLog("Login Suc.");
}else
{
NSLog("Login Failed");
}
}];
当我弹出ViewController并执行dealloc时,我仍然会收到Login Suc。或登录失败消息。
如何避免这个问题?
最佳答案
尝试以下代码:
__weak UIViewController *weakSelf = self;
[PGMemberObj requestWithUserName:@"ab" andPassword:@"cc" andCallback:^(BOOL isSuc){
if ([weakSelf isViewLoaded] && [weakSelf.view window])
//The view controller still exists AND it's being shown on screen
else
//Either dealloc'd or not on screen anymore
}];
它将测试您的视图控制器是否仍然存在并且仍在屏幕上。
只需检查
weakSelf
,如果您不在乎它是否仍在屏幕上显示。if (weakSelf)
//Still exists
else
//dealloc'd
关于ios - uiviewcontroller解除分配时如何在 objective-c 中触发阻止事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19512400/