DynamoDB方法在完成之前返回值

时间:2015-01-29 16:52:19

标签: ios amazon-dynamodb

这可能不是严格意义上的dynamoDB问题,但我在自定义类中有一个方法来管理我的DynamoDB连接。但是,当我从另一个类调用它时,它会在方法完成之前返回。

我知道它为什么在它完成之前返回,但我不知道如何解决它。我读过有关BFTask的内容,但不知道如何实现它。

方法初始化的方式没有问题,因为数据库连接在返回后完成。

任何帮助如何重组它都会很棒。

调用DynamoDB连接的自定义类

-(AWSDynamoDBPaginatedOutput *)getRipllComments{

    AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
    AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];
    queryExpression.hashKeyValues = @"######";
    queryExpression.scanIndexForward = NO;
    queryExpression.indexName = @"Timestamp";

    [[dynamoDBObjectMapper query:[CommentsDB class] expression:queryExpression] continueWithBlock:^id(BFTask *task) {
        if (task.error) {
            NSLog(@"Error: [%@]", task.error);

            dispatch_async(dispatch_get_main_queue(), ^{
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                message:@"Failed to query a test table."
                                                               delegate:nil
                                                      cancelButtonTitle:@"OK"
                                                      otherButtonTitles:nil];
                [alert show];
            });

        } else {

            AWSDynamoDBPaginatedOutput *paginatedOutput;

            paginatedOutput = task.result;

            return paginatedOutput;

        }

        return nil;
    }];

    return nil;
}

自定义方法调用

self.DBManager = [[databaseManager alloc]init];
AWSDynamoDBPaginatedOutput *paginatedOutput = [self.DBManager getRipllComments];

0 个答案:

没有答案