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> = []