2017-03-08 15 views
0

次の関数を記述しましたが、戻り値に問題があります。DynamoDBスキャン:正しい値を返しません

私のコンソールには、AWSのdynamoDBから取得した結果が表示され、表示することもできます。ご覧のとおり、私は項目変数を印刷しています。

私の関数で配列をインスタンス化し、AWSから引き出された各項目をそれに追加しますが、nilを返します。

あなたは私のコードのおかげで何が恋しいのか見てください。

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 
    } 

答えて

0

は、実はここに私の機能は、私は関数で変数クライアントを初期化していない、完璧に動作

私は

var clients = [Client]()? 

のようなものを持っていたし、

var clients:Array<Client> = [] 
にそれを変更
関連する問題