DynamoDB扫描:不返回正确的值

问题描述:

我写了下面的函数,但是我的返回值有问题。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 
    } 

其实我在这里的功能完美的作品,我没有在函数初始化变量客户

我有这样的事情

var clients = [Client]()? 

,并把它改成

var clients:Array<Client> = []