DynamoDB扫描:不返回正确的值

时间:2017-03-08 09:02:40

标签: swift swift3 amazon-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
    }

1 个答案:

答案 0 :(得分:0)

实际上我的功能完美无缺,我没有在函数中初始化变量客户端

我有类似

的东西
var clients = [Client]()?

并将其更改为

var clients:Array<Client> = []