这个问题我找不到合适的解决办法。在我正在创建的应用程序中,我允许用户随时更改他们的用户名。因此,当他们转到“设置”页面并更新其信息时,我会执行以下操作:
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的缓存版本似乎更新了用户名字段,而不管是否存在错误。我怎样才能防止这种情况发生?或者如何恢复到以前的“合法”用户名?
发布于 2013-08-09 10:19:23
在尝试更改之前,我会询问使用该用户名的用户是否存在。事实上,我很惊讶在碰撞中出现了一个错误。
否则,可以调用对user对象的fetch。
https://stackoverflow.com/questions/18141005
复制相似问题