使用BFTask链接调用成功/错误

时间:2015-03-07 19:49:39

标签: ios parse-platform

我得到一个我不明白的常见Parse错误:

[Error]: success/error was not called (Code: 141, Version: 1.6.1)

以下是代码:

- (void) setIsConnected:(NSNumber*)isConn ForFormHeader:(FormHeader*)fh PushParams:(NSDictionary*)pushParams
{
    PFQuery* query;
    __block PFObject* rsi;

    query = [PFQuery queryWithClassName:RemoteShareInfo_RemoteClass];
    [query whereKey:ShareID_RemoteField equalTo:[[[fh dataFormTypeInfo] remoteRecipientInfo] shareID]];
    [query whereKey:RecipientEmail_RemoteField equalTo:[[[fh dataFormTypeInfo] remoteRecipientInfo] recipientEmail]];
    [[[[query getFirstObjectInBackground] continueWithSuccessBlock:^id(BFTask *task)
    {
        NSLog(@"Notice - setIsConnected(1): object found");
        rsi = [task result];

        if ([isConn boolValue])
        {
            rsi[IsConnected_RemoteField] = @YES;
            rsi[ClonedPageCount_RemoteField] = [fh clonedPageCount];
            rsi[IsPro_RemoteField] = [[NSUserDefaults standardUserDefaults] objectForKey:UDIsProVersion];

            if ([[fh formDatas] count])
            {
                NSMutableArray* fdAttrib = [NSMutableArray new];
                for (FormData* fd in [fh formDatas])
                {
                    [fdAttrib addObject:[fd attributesDic]];
                }
                rsi[FormDatas_RemoteField] = fdAttrib;
            }
        }
        else
        {
            rsi[IsConnected_RemoteField] = @NO;
        }

        return [rsi saveInBackground];

    }] continueWithSuccessBlock:^id(BFTask *task)
    {
        NSLog(@"Notice - setIsConnected(2): object saved");

        if (pushParams)
        {
            return [PFCloud callFunctionInBackground:FNFormogenPush withParameters:pushParams];
        }
        else
        {
            return nil;
        }

    }] continueWithBlock:^id(BFTask *task)
    {
        if ([task error])
        {
            NSLog(@"Error - setIsConnected(3): %@", [[[task error] userInfo] objectForKey:@"error"]);
        }
        else
        {
            NSLog(@"Success - setIsConnected(4): object connected, notification sent");
        }

        return nil;
    }];
}

这是控制台输出:

2015-03-07 13:01:44.780 formogen[4338:6302988] Notice - setIsConnected(1): object found
2015-03-07 13:01:44.984 formogen[4338:6302986] Notice - setIsConnected(2): object saved
2015-03-07 13:01:45.799 formogen[4338:6302987] [Error]: success/error was not called (Code: 141, Version: 1.6.1)
2015-03-07 13:01:45.801 formogen[4338:6302989] Error - setIsConnected(3): success/error was not called

错误意味着我应该在调用callFunctionInBackground之后立即调用成功/错误,但是调用的签名表明它将适合链接策略。我做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

错误来自我调用的Cloud Code函数,而不是调用本身。我没有为Parse push的结果提供成功或错误块。