尝试将 AWS DynamoDB 与 Swift 3 结合使用时出现很多错误

2024-03-21

我是快速开发的新手,正在尝试合并后端。我认为 AWS 将是实现我想要完成的任务的好方法。我目前只是想获取他们为您创建的示例项目文件,它有很多错误,令人难以置信。我意识到 AWS 在 Swift 2 中创建文件,因此在 Swift 3 中运行它们非常困难。

当我在 xCode 中打开代码时,我将代码转换为 Swift 3,之后对行进行了大约 30 处更改,只是试图消除所有我能消除的错误。现在我被困住了。有些行我只是不知道该怎么做才能修复它。我将在下面列出一些,但如果有人对解决此问题的最佳方法有任何提示或可以帮助我修复下面的错误,我将不胜感激。

1)这里的问题是model.classForCoder.responds(to: #selector(AWSDynamoDBModeling.rangeKeyAttribute))。错误说“无法调用非函数类型的值((Selector -> Bool)!”

func produceOrderedAttributeKeys(_ model: AWSDynamoDBObjectModel) -> [String] {
    let keysArray = Array(model.dictionaryValue.keys)
    var keys = keysArray as! [String]
    keys = keys.sorted()

    if (model.classForCoder.responds(to: #selector(AWSDynamoDBModeling.rangeKeyAttribute))) {
        let rangeKeyAttribute = model.classForCoder.rangeKeyAttribute!()
        let index = keys.index(of: rangeKeyAttribute)
        if let index = index {
            keys.remove(at: index)
            keys.insert(rangeKeyAttribute, at: 0)
        }
    }

2) “== 生成 Bool,而不是预期的上下文结果类型 'NSNumber'”

class func randomSampleBOOL() -> NSNumber {
    // If random number is even number then return true, false for odd numbers
    return self.randomNumber() % 2 == 0
}

3)问题在于loadNextPage(completionHandler) line. “传递给不带参数的调用的参数”

func loadMoreResults() {
    loading = true
    paginatedOutput?.loadNextPage(completionHandler: {(error: NSError?) -> Void in
        if error != nil {
            print("Failed to load more results: \(error)")
            DispatchQueue.main.async(execute: {
                self.showAlertWithTitle("Error", message: "Failed to load more more results: \(error?.localizedDescription)")
            })
        }
        else {
            DispatchQueue.main.async(execute: {
                self.results!.append(contentsOf: self.paginatedOutput!.items)
                self.tableView.reloadData()
                self.loading = false
            })
        }
    })
}

4)问题在于objectMapper.load. 无法将类型“(AWSDynamoDBObjectModel?, NSError?) -> Void”的值转换为预期参数类型“((AWSDynamoDBObjectModel?, Error?) -> Void)?”

 func getItemWithCompletionHandler(_ completionHandler: @escaping (_ response: AWSDynamoDBObjectModel?, _ error: NSError?) -> Void) {
    let objectMapper = AWSDynamoDBObjectMapper.default()
    objectMapper.load(Orders.self, hashKey: "demo-email-3", rangeKey: 1111500000, completionHandler: {(response: AWSDynamoDBObjectModel?, error: NSError?) -> Void in
        DispatchQueue.main.async(execute: {
            completionHandler(response, error)
        })
    })
}

5) 无法使用类型为“(Orders.Type, 表达式: AWSDynamoDBScanExpression, (AWSDynamoDBPaginatedOutput?, NSError?) -> ())”的参数列表调用“scan”

let objectMapper = AWSDynamoDBObjectMapper.default()
    let scanExpression = AWSDynamoDBScanExpression()
    scanExpression.filterExpression = "begins_with(#email, :email)"
    scanExpression.expressionAttributeNames = ["#email": "email"]
    scanExpression.expressionAttributeValues = [":email": "demo-"]

    objectMapper.scan(Orders.self, expression: scanExpression) { (response: AWSDynamoDBPaginatedOutput?, error: NSError?) in

6)最后大概有15个这样的实例方法“getItemWithCompletionHandler”几乎匹配协议“Table”的可选要求“getItemWithCompletionHandler”具有各种不同的方法名称等。这些只是警告,但我建议将其设为私有或添加@nonobjc,如果有的话我不知道我应该做什么。


面向未来 Google 员工的更新: 我设法解决了第一个问题,将其更改为:

if let rangeKeyAttribute = model.classForCoder.rangeKeyAttribute?() {
        let index = keys.index(of: rangeKeyAttribute)
        if let index = index {
            keys.remove(at: index)
            keys.insert(rangeKeyAttribute, at: 0)
        }
    }

第二个我很困惑,因为注释说“返回 true,奇数返回 false”,但该函数返回一个 NSNumber。我将其更改为返回 Bool 并修复了错误,但这似乎是他们会犯的一个奇怪的错误。我觉得这也会在 Swift 2 中导致错误。剩下的我也没搞明白...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试将 AWS DynamoDB 与 Swift 3 结合使用时出现很多错误 的相关文章

  • 使用 Metal 高效计算 UIImage/CIImage 中有多少透明像素

    我们可以计算有多少个透明像素的最快方法是什么CIImage UIImage 例如 如果我们谈论效率 我的第一个想法是使用Metal Kernel使用任一CIColorKernel左右 但我不明白如何使用它来输出 计数 我还有其他想法 使用某
  • 在 iOS 8 中创建通话/双高状态栏?

    是否有调用自定义通话 双高状态栏的标准方法 如果没有 那么构建我自己的功能的最佳起点是哪里 我知道关于如何做到这一点存在一些多年的问题 但没有任何令人满意的答案 有什么新方法可以做到这一点吗 可能在 iOS 8 中 这里没有什么新鲜事 但我
  • Cordova iOS 启动画面

    我无法让闪屏停留在页面加载之前 我已经阅读了谷歌搜索第一页 第二页和第三页中的所有条目 我阅读了 stackoverflow 上发布的所有问题 包括一个很好的解释 https stackoverflow com questions 1800
  • 具有透明背景的 Swift 模态视图控制器 [重复]

    这个问题在这里已经有答案了 我知道这个话题很受欢迎 但我在编程语言中遇到了一些问题 事实是我仍然不明白我把代码放在哪里 好吧 我就来说说整个案子 我正在尝试制作一个与正常情况稍有不同的模态 Swift 通过单击按钮 ViewControll
  • 如何在 Safari 上打开本地 html 文件?

    我想打开本地 html 文件Safari集成到我的Swift 3应用 我知道如何使用网址来做到这一点 这是我用来执行此操作的代码 let encodedString url addingPercentEncoding withAllowed
  • Apple 针对 http 直播流媒体应用程序的政策

    这里有要求 http developer apple com library ios documentation NetworkingInternet Conceptual StreamingMediaGuide UsingHTTPLive
  • 通过应用程序组在应用程序之间通信和保存数据

    iOS 8 昨天发布了一个有关应用程序组的新 API 以前在应用程序之间共享数据和通信有点混乱 我相信这正是应用程序组旨在纠正的问题 在我的应用程序中 我启用了应用程序组并添加了一个新组 但我找不到任何有关如何使用它的文档 文档和 API
  • 在 UIView 中绘制彩色文本 -drawRect: 方法

    我正在尝试在我的中绘制彩色文本UIView子类 现在我正在使用单视图应用程序模板 用于测试 除了以下内容外 没有任何修改drawRect method 文本已绘制 但无论我将颜色设置为什么 它始终是黑色的 void drawRect CGR
  • 将 Django 部署到 AWS;傻瓜静态文件

    我对这个项目的最后一步完全迷失了 到目前为止 我已经能够开发一个 Django 应用程序 它可以在本地主机上按照我想要的方式工作 我已经能够将网站部署到 AWS EC2 但我一定错过了有关提供静态文件的一些基本知识 我什至还没有尝试过媒体文
  • 如何检测 iOS 8 上的包含应用程序是否启用了应用程序扩展?

    我正在 iOS 8 beta 上开发一个自定义键盘 我想告诉用户如果我的自定义键盘未启用 如何在包含应用程序中启用它 有什么方法可以检测应用程序扩展是否已启用 首先让我们设置一些常量 以便于彼此理解 包含应用程序 安装扩展并保存扩展二进制文
  • 如何使用 AWS Glue 开始处理从 Web 服务终端节点提取的数据?

    更多源数据来自我需要定期轮询的 Web 服务端点 获得数据后 我可以使用 pyspark 执行传统的 ETL 并最终将数据写入 S3 和 Redshift 我不确定如何进行初始提取 甚至不确定我应该在 AWS Glue 文档中查找什么内容
  • 无法识别的选择器调用静态 iOS 库中的类别方法

    我正在使用一些第三方软件来帮助使用 Xcode 4 3 2 编写 iPad 应用程序 该软件是开源的 通常经过设置 因此其代码将与开发人员为应用程序编写的任何代码一起编译 因为我在很多地方使用该软件 所以我决定将其构建为 iOS 模拟器的静
  • 将密钥对添加到现有 EC2 实例

    我被给予AWS控制台访问正在运行 2 个实例的帐户 但我无法关闭 在生产中 但是 我想获得对这些实例的 SSH 访问权限 是否可以创建一个新的密钥对并将其应用到实例 以便我可以通过 SSH 访问 获取现有的pem当前无法选择创建实例所用的密
  • iOS JPEG 图像旋转 90 度

    我正在使用选择器视图从相册中选择图像 我使用上面的代码 void imagePickerController UIImagePickerController picker didFinishPickingMediaWithInfo NSDi
  • CIAdditionCompositing 给出不正确的效果

    我正在尝试通过平均其他几个图像来创建图像 为了实现这一点 我首先将每个图像变暗 其系数等于我平均的图像数量 func darkenImage by multiplier CGFloat gt CIImage let divImage CII
  • Xamarin.Forms DataTemplateSelector 不适用于 iOS(未调用构造函数)

    我正在膨胀数据模板选择器 如下所示
  • iOS 键盘显示后分屏宽度

    我刚刚开始研究 Cordova 应用程序对分屏多任务处理的支持 到目前为止 该应用程序在模拟器中的 iPad 上显示和调整大小都很好 但是当我单击编辑字段并显示软件键盘时 100 宽度的值开始返回整个屏幕 而不是给出的窗口 初始显示 到目前
  • 如何在运行仅 iPhone 应用程序(非通用)的 iPad 上的 UIPickerView 中支持 VoiceOver?

    一般来说 我会查看 Apple 的 UICatalog 示例代码以获取基本的 VoiceOver 支持 但示例代码中似乎有对 UIPickerViews 的 VoiceOver 支持 我是否需要在某处提供accessibilityLabel
  • 在iOS中设置框架的原点

    我正在尝试以编程方式设置框架的原点 Method1 button frame origin y 100 方法二 CGRect frame button frame frame origin y 100 我尝试了方法 1 但它不起作用 显示错
  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s

随机推荐

  • 将函数应用于列表中所有数据帧的某些列,然后为列赋值

    类似问题已回答here https stackoverflow com questions 22002838 same function over multiple data frames in r 我有一个数据框列表 即 1000 如下所
  • 增强 qi::rule 上的精神语义动作

    我一直在阅读语义动作 我有一个如下所示的规则 property rule identifier rule gt gt lit L gt gt type specification rule gt gt lit L gt gt alnum g
  • Emacs:如何将杀戮环从系统剪贴板中分离出来?

    默认情况下 Emacs 23 x 似乎会将被删除的内容复制到删除环和系统剪贴板 是否可以将杀戮环和剪贴板分开 例如 ctrl k 将内容放入终止环 cmd x 将内容放入系统剪贴板并保留终止环 这在中讨论过这个线程 http lists g
  • 如何在每个测试方法之前和之后执行sql脚本

    有一个 Sqlspring中的注释允许执行sql测试方法前后的代码 Test Sql init sql Sql scripts clean sql executionPhase Sql ExecutionPhase AFTER TEST M
  • 与 Kotlin 泛型的混淆

    我是 Kotlin 的新手 我正在尝试编写一些相当简单的代码 但是我不知道如何使用泛型来使其工作 我有一个Handler代表事物处理程序的特征 我无法更改处理程序的代码 因为它来自库 trait Handler
  • 当我构建多个 ProductFlavors 时,使用 Facebook SDK INSTALL_FAILED_CONFLICTING_PROVIDER

    我正在构建一个包含多个 Android 应用程序productFlavors 并使用Facebook SDK v4 1进行登录和分享内容 问题是 当我尝试在已安装相同应用程序 但风格不同 的设备上安装应用程序时 会引发错误 它不允许我安装第
  • 如何向 Quill.js 添加新格式(
    标签)?

    我想添加一个按钮来添加 hr 标记到quill js 测试版 http beta quilljs com docs quickstart editor 这里的fiddle https jsfiddle net Lgxkj4ag div sp
  • 如何多次发送文件

    有两个 C 项目 一个项目用于客户端 另一个项目用于服务器 第一步是运行服务器 然后选择一个目标文件夹 然后运行客户端项目 选择一些text txt发送到服务器的目标文件夹 只有客户端可以向服务器发送文件 Demo 1 choosing f
  • 为什么有些资源文件放在META-INF目录下

    我想知道为什么有些资源文件放在JAR中的META INF目录下 我总是将像 test properties 这样的资源放在根目录下 将它们放入 META INF 有什么好处吗 许多 Java EE API 都有一个约定 即当您将特定的配置
  • iText,Font、BaseFont 和 createFont() 发生了什么?

    关于 font 和 basefont 的情况对我来说有很多谜团 尤其是当涉及到构造函数时 iText 网站提供了这一行作为新字体的示例代码 BaseFont unicode BaseFont createFont c windows fon
  • Rails 4 - 如何使用枚举?

    我正在尝试在 Rails 4 上制作一个应用程序 我发布了这个问题并得到了一些建议 Rails 4 Simple Form 如何保存键和显示值 https stackoverflow com questions 36539924 rails
  • 如何使用 OpenCV 交换图像中的蓝色和红色通道

    我在交换图像的通道 特别是红色和蓝色 时遇到了一些问题 我正在使用 Opencv 3 0 0 和 Python 2 7 12 以下是我交换频道的代码 import cv2 img cv2 imread input car1 jpg The
  • 逗号运算符重置此

    在下面code https www typescriptlang org play src var 20x 20 3D 20 7B 20f 3A 20function 20 20 7B 20return 20this 20 3D 3D 3D
  • 将图像缩略图添加到网格布局中?

    我有一个图像列表 我需要将小缩略图添加到框架中 我目前有框架SpringLayout 如何使用滚动窗格在某些网格中添加缩略图 如时尚 照片列表可能很大 所以我需要一个滚动窗格 我不知道如何处理这个问题SpringLayout 我知道如何添加
  • 如何在Python中将pptx导出为图像(png、jpeg)?

    我用 Python 开发了一段小代码来生成 PPTX 文件 但我还想生成一张 PNG 或 JPEG 格式的幻灯片图片 from pptx import Presentation from pptx util import Inches im
  • 为 Blazor WASM 保存时重新编译 .razor 文件

    有没有办法让 Blazor WebAssembly 重新编译 razor文件更改 更新然后保存时 我已经习惯了这种情况在传统的 ASP NET Core MVC razor 视图以及客户端框架 如 Angular 中发生 在 ASP NET
  • DRAM 访问的性能计数器

    我想找回DRAM 存取次数在我的应用程序中 准确地说 我需要区分数据和代码访问之间 该处理器是一个Intel R Core TM i7 4720HQ CPU 2 60GHz Haswell 基于英特尔软件开发人员手册 第 3 卷 https
  • 无法在生产环境中实例化模块

    我刚刚将我的程序推送到 Heroku 上 并且我测试 Angular 的页面加载了以下错误 未捕获错误 injector modulerr 无法实例化模块 diceAngularApp 原因是 错误 injector unpr 未知提供者
  • python中使用numpy数组出现内存错误

    我收到此代码的以下错误 model lda LDA n topics 15 n iter 50 random state 1 model fit X topic word model topic word print type topic
  • 尝试将 AWS DynamoDB 与 Swift 3 结合使用时出现很多错误

    我是快速开发的新手 正在尝试合并后端 我认为 AWS 将是实现我想要完成的任务的好方法 我目前只是想获取他们为您创建的示例项目文件 它有很多错误 令人难以置信 我意识到 AWS 在 Swift 2 中创建文件 因此在 Swift 3 中运行