关于菊花的bug

+ (void) showLoadHUD:(UIView *)toView message:(NSString *)message {
    
    if (toView == nil) toView = [[UIApplication sharedApplication].windows lastObject];
    __weak UIView * weakView = toView;
    dispatch_async(dispatch_get_main_queue(), ^{
        
        __strong UIView * view = weakView;
        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
        if (message != nil && message.length > 0) hud.label.text = message;
        hud.label.numberOfLines = 0;
        hud.removeFromSuperViewOnHide = YES;
    });
}
+ (void)hideHUDForView:(UIView *)view {
    [MBProgressHUD hideHUDForView:view animated:YES];
}

条件:
同时请求两个接口
都有菊花,故有两个菊花
因为

[MBProgressHUD hideHUDForView:view animated:YES];

有动画延时的原因,第一个接口回来的时候本来要隐藏掉的菊花其实没来得及移除,当第二个接口回来的时候,假如这个时候动画执行完也要移除菊花的时候,就会重叠在一起,只移除了第二个菊花,(两次移除的菊花内存地址是一样的,表明是一个对象,而不是两个),所以bug就出现在这里了,第一个菊花没有移除,一直在转。

配合着内存地址来看

你可能感兴趣的:(关于菊花的bug)