为了实现用户登录 再输入账号时候加载已经登录过的用户头像
先说思路,然后根据思路上代码
1、用户登录后获取用户信息并储存
2、当用户更换头像后需要替换之前的
3、登录时根据用户输入的账号去加载本地储存的相对应的用户头像
---------------------------------------代码---------------------------------------
宏定义
#define JTUserDefaults [NSUserDefaults standardUserDefaults]
1、储存信息:创建一个可变字典将NSUserDefaults对象存到这个字典中 然后再讲手机号作为key值,头像地址作为value放在这个字典中,最后把字典写入本地
NSMutableDictionary*mutableDic =[NSMutableDictionary dictionaryWithDictionary:[JTUserDefaults objectForKey:@"userImageUrl"]];
[mutableDic setValue:dic[@"avatar_img"] forKey:dic[@"phone"]];
[JTUserDefaults setObject:mutableDic forKey:@"userImageUrl"];
[JTUserDefaults synchronize];
(还可以声明一个字典存用户手机号和头像,是为了用户退出后,再去登陆的时候去读取加载上次登录的用户头像,这个字典不需要储存多条)
2、更换头像:取出本地储存头像 根据key(电话号码)改变Value(原来的头像地址)
NSMutableDictionary*mutableDic = [NSMutableDictionary dictionaryWithDictionary:[JTUserDefaults objectForKey:@"userImageUrl"]];
//取出当前手机号,根据取出的key像替换掉原来的value 也就是替换掉头像地址
NSString*phone = [NSString stringWithFormat:@"%@",[YCUserData sharedManager].phone];
mutableDic[phone] = obj[@"data"];
[JTUserDefaults setObject:mutableDic forKey:@"userImageUrl"];
[JTUserDefaults synchronize];
3、匹配本地头像:在这个textField代理事件中找到对应的头像
#pragma mark -- textField代理事件
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string {
NSString* toBeString = [textField.textstringByReplacingCharactersInRange:rangewithString:string];
JTDLog(@"%@",toBeString);
if(textField.tag==10) {
if(textField.text.length>=13&& ![stringisEqualToString:@""]) {
returnNO;
}
NSMutableDictionary*mutableDic = [NSMutableDictionarydictionaryWithDictionary:[JTUserDefaultsobjectForKey:@"userImageUrl"]];
if(IsArrOrDicEmpty(mutableDic)) {
}else{
NSArray*phoneArr =mutableDic.allKeys;
if(toBeString.length==0) {
[_headerImagesetImage:IMAGE_NAME(@"user_head")];
returnYES;
}
for(NSString*strinphoneArr) {
if([strcontainsString:toBeString]) {
NSString*imageUrl =[mutableDicobjectForKey:str];
[_headerImagesd_setImageWithURL:[NSURLURLWithString:imageUrl]placeholderImage:IMAGE_NAME(@"user_head")];
break;
}else{
[_headerImagesd_setImageWithURL:[NSURLURLWithString:@""]placeholderImage:IMAGE_NAME(@"user_head")];
}
}
}
}else{
if(textField.text.length>=21&& ![stringisEqualToString:@""]) {
returnNO;
}
}
returnYES;
}