这可能不是严格意义上的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];