2016-05-07 6 views
1

DynamoDBテーブルにクエリを作成した後で、クエリ結果を印刷しようとしています。後でテーブルに表示させるつもりですが、今は正しく動作していることを確認したいのです。クエリは機能し、エラーは発生しません。私はそれが私が理解していない改ページ機能で何かをすると思う。私はドキュメントを読んでみましたが、それは私を助けませんでした。Swiftを使用してDynamoDBのクエリ結果を印刷する方法

func queryWithPartitionKeyAndSortKeyAndFilterWithCompletionHandler(completionHandler: (response: AWSDynamoDBPaginatedOutput?, error: NSError?) -> Void) { 
    let objectMapper = AWSDynamoDBObjectMapper.defaultDynamoDBObjectMapper() 
    let queryExpression = AWSDynamoDBQueryExpression() 

    queryExpression.keyConditionExpression = "#userId = :userId AND #genre < :genre" 
    queryExpression.filterExpression = "#author > :author" 
    queryExpression.expressionAttributeNames = [ 
     "#userId": "userId", 
     "#genre": "genre", 
     "#author": "author", 
    ] 
    queryExpression.expressionAttributeValues = [ 
     ":userId": AWSIdentityManager.defaultIdentityManager().identityId!, 
     ":genre": "fiction", 
     ":author": "Taylor", 
    ] 

    objectMapper.query(Books.self, expression: queryExpression, completionHandler: {(response: AWSDynamoDBPaginatedOutput?, error: NSError?) -> Void in 
     dispatch_async(dispatch_get_main_queue(), { 
      completionHandler(response: response, error: error) 
     }) 
    }) 
} 


let completionHandler = {(response: AWSDynamoDBPaginatedOutput?, error: NSError?) -> Void in 
    if let error = error { 
     var errorMessage = "Failed to retrieve items. \(error.localizedDescription)" 
     if (error.domain == AWSServiceErrorDomain && error.code == AWSServiceErrorType.AccessDeniedException.rawValue) { 
      errorMessage = "Access denied. You are not allowed to perform this operation." 
     } 
    }else { 


     print("I did it") 
     print(response) 


    } 
} 

答えて

2

AWSDynamoDBPaginatedOutputは、itemsというプロパティを持っています。配列の内容を出力する必要があります。

+0

それがうまくいった!私はprint(response!.items)を使用し、それが出力を印刷したので私は満足しています。 –