iPhone锁定后解析saveInBackground?

时间:2015-05-01 17:18:07

标签: ios iphone parse-platform save request

我希望能够在iOS设备锁定时保存用户信息。我使用后台模式,但saveInBackground似乎只能工作约5秒钟然后停止保存。当重新打开应用程序时,它会立即将它们全部保存。有没有办法让它们在被锁定时保存?

由于

1 个答案:

答案 0 :(得分:1)

** Cloud Code(JS)**

Parse.Cloud.define("createSale", function(request, response) {
  var SaleClass = Parse.Object.extend("Sale");
  var sale = new SaleClass();
  sale.set("contractorId", request.params.contractorId);
  sale.set("subtotal", request.params.subtotal);
  sale.save(null, {
  success: function (sale) {
                    console.log(responseData);
                    response.success(responseData);
                  },
                  error: function (error) {
                    response.error(error);
                    console.log(error);
                  }
                });
 }); 

分享ParseCloudFunctions的实例(Obj-C)

我创建了一个包含所有Parse Cloud Code Functions的类。我创建了这个类的共享实例,并有一个调用Parse Cloud Code的实例方法:

#import <Parse/Parse.h>

+ (ParseCloudFunctions *) sharedInstance {
    static ParseCloudFunctions *sharedInstance;
     static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[ParseCloudFunctions alloc] init];
    });
    return sharedInstance;
 }

- (void) createSaleWithParameters: (NSDictionary *) parameters block:(void (^)(id object, NSError *error)) block{
    [PFCloud callFunctionInBackground:@"createSale" withParameters:parameters block:block];
}

每当您想要调用解析云代码时,您只需执行以下操作:

 NSDictionary *parameters = @{
                                 @"contratorId":contractorId,
                                 @"subtotal":subtotal,
                                 };

    [[ParseCloudFunctions sharedInstance] createSaleWithParameters:parameters block:^(id object, NSError *error) {
        if(error){
            //Handle Error
        }
        if(object){
            //Do stuff
        }
    }];

保存是在服务器端处理的,因此您只需要一点时间来调用云代码就可以了。