2017-03-08 81 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> = []