2017-03-08 19 views
0

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 
    } 

Antwort

0

Eigentlich hier meine Funktion funktioniert perfekt, ich nicht die variablen Kunden in den Funktionen initialisiert haben

Ich hatte so etwas wie

var clients = [Client]()? 

und verändert es

var clients:Array<Client> = [] 
Verwandte Themen