解析-getObjectInBackgroundWithId没有保存在数据库上

时间:2015-02-01 06:01:37

标签: ios objective-c iphone xcode parse-platform

我有一个代码片段,它将更新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);
                      }
        }];
    }];
}

1 个答案:

答案 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语句,但这不是必需的。

致以最诚挚的问候,