我有一个代码片段,它将更新Parse数据库中的信息。我设置了一个动作,以便在保存信息时,它会在后台更新。该函数正在执行,但它没有在数据库中保存任何内容。它通过该功能,但没有保存任何更改。更改的值位于文本字段和开关内。
- (IBAction)save:(id)sender {
NSLog(@"classnameinsave %@", self.productTitleField.text);
PFQuery *query = [PFQuery queryWithClassName:self.className];
[query getObjectInBackgroundWithId:self.productId block:^(PFObject *object, NSError *error) {
NSLog(@"inside getObjectsInBackgroundWithId function");
NSLog(@"priceinsave %@", object[@"price"]);
object[@"title"] = self.productTitleField.text;
object[@"price"] = self.priceField;
object[@"quantity"] = self.quantityField;
object[@"show"] = self.show;
[object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if(succeeded){
NSLog(@"Succeeded in Saving");
}else if(error){
NSLog(@"Error with saving changes %@", error);
}
}];
}];
}
答案 0 :(得分:0)
最有可能发生这种情况是因为您正在寻找的PFObject甚至不存在!您忘记添加if语句来验证对象是否存在。此外,我了解您希望通过基于UILabel
的类名来使其尽可能动态,但请不要这样做,这根本没有意义。用以下代码替换您的代码:
PFQuery *query = [PFQuery queryWithClassName:@"ClassName"];
[query getObjectInBackgroundWithId:self.productId block:^(PFObject *object, NSError *error) {
if(object){
//Do everything here :)
}else{
//Display an UIAlertView to the user?
NSLog(error);
}
}];
注意: 应该添加if语句,但这不是必需的。
致以最诚挚的问候,