一赢织、需求:
用戶注冊時亮靴,需要上傳頭像;
二于置、我最開始的寫法:(錯誤的)
headBtn = [[UIButton alloc] init];(此處的UIButton可以換成UIImageView)
[headBtn setImage:[UIImage imageNamed:@"默認(rèn)頭像"] forState:UIControlStateNormal];
[headBtn addTarget:self action:@selector(uploadMainImage) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:headBtn];
[headBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(label.mas_bottom).offset(9*WX_VIEW_HEIGHT_RATIO);
make.centerX.equalTo(self.view);
make.width.height.equalTo(@(62 * WX_VIEW_WIDTH_RATIO));
}];
判空條件:
if([headBtn.currentImage isEqual:[UIImage imageNamed:@"默認(rèn)頭像"]]) {
[WXCommonUtil showHUDTips:@"頭像不能為空" on:self.view];
return;
}
正常狀態(tài)下沒有問題,但是如果把APP推出到后臺茧吊,然后重新進入APP贞岭,此時的判空條件是無效的。
三搓侄、原因:
[UIImage imageNamed:@"默認(rèn)頭像"]瞄桨,它是一個局部變量,在退出后臺重新進入前臺讶踪,它會被釋放掉芯侥,然后生成一個新的默認(rèn)頭像,地址改變乳讥,導(dǎo)致判空失效柱查。
四、合理的方案:
UIImageView *bgHeadImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"默認(rèn)頭像"]];
[self.view addSubview:bgHeadImage];
[bgHeadImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(label.mas_bottom).offset(9*WX_VIEW_HEIGHT_RATIO);
make.centerX.equalTo(self.view);
make.width.height.equalTo(@(62 * WX_VIEW_WIDTH_RATIO));
}];
//headBtn 不設(shè)置默認(rèn)頭像
//判空條件
if(headBtn.currentImage == nil) {
[WXCommonUtil showHUDTips:@"頭像不能為空" on:self.view];
return;
}
完事云石。(如果大家有什么好的意見唉工,可以溝通交流)