我找不到这个问题的正确解决方案。在我正在创建的应用程序中,我允许用户随时更改他们的用户名。因此,当他们转到设置页面并更新他们的信息时,我会执行以下操作:
PFUser *modifiedCurrent = [PFUser currentUser];
[modifiedCurrent setObject:username.text forKey:@"username"];
[modifiedCurrent setObject:name.text forKey:@"additional"];
[modifiedCurrent setObject:email.text forKey:@"email"];
[modifiedCurrent saveInBackgroundWithBlock:^(BOOL success, NSError *error) {
if (error) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Error"
message: [NSString stringWithFormat:@"%@",[[error userInfo]
objectForKey:@"error"]]
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
} else {
[self.navigationController popViewControllerAnimated:YES];
};
}];
如果用户选择了一个已经在使用的用户名,服务器显然会返回一个错误,因此不会更新数据库。但是,无论是否有错误,[PFUser currentUser] 的缓存版本似乎都会更新用户名字段。我该如何防止这种情况发生?或者我如何恢复到以前的“合法”用户名?