4

我正在按照此入门指南使用 AWS Amplify CLI 和适用于 iOS 的 AWS 开发工具包构建 iOS 应用程序。

我之前已经按照这个 Apple 入门指南中的步骤简单地创建了单视图应用程序的基本框架。

一切顺利:在开始 AWS iOS SDK Swift 教程之前和之后,我都能够在 Xcode 中构建我的空项目,启动模拟器,查看我的白色空白屏幕。

我的问题是 AWS 教程假定的 Swift 知识比我拥有的更多。因此,当它在结尾处说以下内容时-

从您的应用代码中调用 runMutation()、runQuery() 和 subscribe() 方法,例如通过单击按钮或当您的应用在 viewDidLoad() 中启动时。

——该指南基本上跳过了一些步骤。

我已经为本教程创建了所需的 AWS 资源,但我不知道如何调用这些函数并更新设置的 DynamoDB 表。

假设我可以向 UI 视图添加两个文本字段(一个用于 ToDo 的“名称”,一个用于“描述”)并将一个按钮绑定到它们,有人可以帮我完成剩下的工作吗?

更新 回答如下。问这个问题我收到了反对票,但有人可能会争辩说,入门指南应该是独立的。没什么大不了的;我完成了两个教程并解决了我的问题,并为那些像我一样困惑的人发布了答案。

4

1 回答 1

4

因此,在利用 Apple iOS Swift 入门指南创建 AWS 所需的必要视图元素后,我能够成功完成 AWS Amplify / iOS SDK 入门指南。这意味着:

两个文本字段:“名称”和“描述”;一个标签; 和一个按钮。这是我的插座属性:

//MARK: Properties
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var descTextField: UITextField!
@IBOutlet weak var todoItemLabel: UILabel!

我的 viewDidLoad():

override func viewDidLoad() {
    super.viewDidLoad()

    // Handle the text field’s user input through delegate callbacks.
    nameTextField.delegate = self
    descTextField.delegate = self

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appSyncClient = appDelegate.appSyncClient
}

我调用 runMutation() 的按钮操作:

//MARK: Actions
@IBAction func addToDoItem(_ sender: UIButton) {
    runMutation()
}

并更改 runMutation() 以使用输入的值更新 DynamoDB:

let mutationInput = CreateTodoInput(name: nameTextField.text ?? "No Entry", description: descTextField.text)

如果您已遵循AWS Amplify / iOS SDK 入门指南的步骤 1 - 4并添加了必要的 UI 元素,那么上面的代码将达成交易。

另请注意, @dennis-w 在上面的评论中指出的 API 参考负责处理入门指南中 AppDelegate 中那些已弃用的参考。

于 2019-02-03T03:54:19.950 回答