我编写了以下函数,但我的返回值有问题。
在我的控制台中,我可以看到从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 :(得分:0)
实际上我的功能完美无缺,我没有在函数中初始化变量客户端
我有类似
的东西var clients = [Client]()?
并将其更改为
var clients:Array<Client> = []