ios - 使用 Swift 的 AWS DynamoDB 查询

标签 ios swift amazon-web-services amazon-dynamodb

我正在为移动应用程序使用 swift 和 AWS DynamoDB。我按照教程操作,可以成功保存数据。但是,当我尝试加载数据时,我发现我总是在 viewdidload 中的所有任务完成后保存和加载数据,所以我不能在同一个 View 中传递数据?有什么方法可以立即保存或淘汰数据?

下面是我的代码

mapper.query(Table.self, expression: queryExpress).continueWith{(task: AWSTask<AWSDynamoDBPaginatedOutput>!) -> Any? in
        print("test")
        if let error = task.error as NSError? {
            print("The requst failed. Error: \(error)")
        }
        if let paginatedOutput = task.result {
            for item in paginatedOutput.items
            {
                print("quring")
               //pass info out to array
            }

        }
        return nil
    }

最佳答案

从网络获取数据是一个异步操作。你不能在它完成时延迟加载屏幕。这可能需要很长时间。它可能永远不会完成。

你的 View Controller 必须处理它还没有数据的情况,并在数据可用时更新自己。第一步是避免在 View Controller 中进行网络查询。 View Controller 不应该直接查询网络。他们应该查询比 View Controller 生命周期更长的模型对象。模型对象负责对网络进行查询并使用结果更新自身。然后 View Controller 将根据模型更新自身。这种模式的名称是 Model View Controller,它是 Cocoa 开发的基础。 (搜索有关此模式的许多教程和讨论。)

但是无论您在何处进行查询和存储数据,您总是必须处理数据尚不可用的情况,并同时显示一些内容。在分布式系统中没有什么可以解决这个问题。

关于ios - 使用 Swift 的 AWS DynamoDB 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267492/

相关文章:

Swift 2.x 到 swift 3,XCode 报错 : Cannot convert value of type PHFetchResult

swift - 如何以编程方式将图像放入 SegmentController - Swift

ruby-on-rails-3 - Ruby on Rails + PostgreSQL 应用程序无法在 AWS EC2 上启动。错误是 : "cannot load such file -- pg_ext (LoadError)"

php - 适用于 PHP 的 AWS Polly 文本转语音服务

amazon-web-services - eksctl "no clusters found"

ios - reactcocoa是true应该ChangeCharactersInRange文本字段等效

ios - UICollectionViewController 以编程方式因非零布局参数错误而崩溃

ios - 如何获取 UICollectionViewCell 的矩形?

ios - 我如何获得适用于 ios 5 iPhone 应用程序的 UPC 条码扫描仪框架?

swift - Swift 4 中的嵌套枚举