Ich habe die folgende Funktion geschrieben, aber ich habe ein Problem mit dem Rückgabewert.DynamoDB Scan: Gibt keine korrekten Werte zurück
In meiner Konsole kann ich die Ergebnisse von AWS dynamoDB gezogen sehen, ich kann es sogar anzeigen. Wie Sie sehen können, drucke ich die Elementvariable.
Ich instanziiert ein Array in meiner Funktion und hängt jedes Element an, das von AWS gezogen wird, aber es gibt Null zurück.
Können Sie bitte sehen, was ich in meinem Code vermisse danke.
func scanClientList(_ startFromBeginning: Bool) -> [Client]{
var clients = [Client]()
UIApplication.shared.isNetworkActivityIndicatorVisible = true
let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default()
let queryExpression = AWSDynamoDBScanExpression()
//queryExpression.exclusiveStartKey = self.userId
queryExpression.limit = 20
dynamoDBObjectMapper.scan(Client.self, expression: queryExpression).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask!) -> AnyObject! in
if let paginatedOutput = task.result {
for item in paginatedOutput.items as! [Client] {
print("ITEMS: \(item)")
clients.append(item)
}
if paginatedOutput.lastEvaluatedKey == nil {
}
}
UIApplication.shared.isNetworkActivityIndicatorVisible = false
if let error = task.error as? NSError {
print("Error: \(error)")
}
return nil
})
return clients
}