Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中使用API网关AWSTask对象的正确方法是什么_Ios_Swift_Amazon Web Services_Aws Api Gateway_Aws Amplify - Fatal编程技术网

Ios 在Swift中使用API网关AWSTask对象的正确方法是什么

Ios 在Swift中使用API网关AWSTask对象的正确方法是什么,ios,swift,amazon-web-services,aws-api-gateway,aws-amplify,Ios,Swift,Amazon Web Services,Aws Api Gateway,Aws Amplify,Github()上的一位AWS iOS SDK开发人员向我发出了指示,但我仍然不知道如何访问通过API网关返回的passthrough Lambda响应 如果您阅读,您将看到我能够通过简单的iOS应用程序成功地调用RESTAPI。Cloudwatch日志验证Lambda是否返回正确的响应。但我不知道如何在结果中访问这些值 下面是调用RESTAPI的代码,它基于API网关文档中的特性 @IBAction func userInvokeApi(_ sender: UIButton) { pr

Github()上的一位AWS iOS SDK开发人员向我发出了指示,但我仍然不知道如何访问通过API网关返回的passthrough Lambda响应

如果您阅读,您将看到我能够通过简单的iOS应用程序成功地调用RESTAPI。Cloudwatch日志验证Lambda是否返回正确的响应。但我不知道如何在
结果中访问这些值

下面是调用RESTAPI的代码,它基于API网关文档中的特性

@IBAction func userInvokeApi(_ sender: UIButton) {
    print("You clicked invoke api...")
    let client = SVTLambdaGateClient.default()
    client.calcGet(operand2: "3", _operator: "+", operand1: "5").continueWith{ (task: AWSTask?) -> AnyObject? in
        if let error = task?.error {
            print("Error occurred: \(error)")
            return nil
        }

        if let result = task?.result {
            // Do something with result
            print("The raw result is... \(result)")
        }

        return nil
    }
}
是的,我意识到我所做的就是打印
结果的地址。我尝试打印的所有值都失败了

更新 当我按照下面的建议尝试
result.responseData
时,我收到以下消息:

Value of type 'Empty' has no member 'responseData'
Empty
指用于Lambda函数的直通响应的API网关模型;它不会对数据执行任何转换。。只需将其发送到客户端。以下是我的
Empty.swift
的外观:

import Foundation
import AWSCore

@objcMembers
public class Empty : AWSModel {

    public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
        var params:[AnyHashable : Any] = [:]

        return params
    }
}

有人能帮我吗?

我相信它在
responseData
中。尝试
打印(字符串(数据:result.responseData!,编码:.utf8)!)
当然,不要在生产代码中强制打开这些选项。天啊,我真希望这样能起作用。但是Xcode告诉我这是一个错误:类型为Empty的
值没有成员响应data
。在我的例子中,API网关模型被称为Empty,它基本上对Lambda函数的响应没有任何影响。。。因此它是通过的。我将在上面添加一些关于空的.swift文件的详细信息,该文件是作为我的API网关iOS swift SDK的一部分生成的,这正是我在尝试访问Lambda函数返回的内容时所看到的错误:
类型为“Empty”的值没有成员“”
我相信它在
responseData
中。尝试
打印(字符串(数据:result.responseData!,编码:.utf8)!)
当然,不要在生产代码中强制打开这些选项。天啊,我真希望这样能起作用。但是Xcode告诉我这是一个错误:类型为Empty的
值没有成员响应data
。在我的例子中,API网关模型被称为Empty,它基本上对Lambda函数的响应没有任何影响。。。因此它是通过的。我将在上面添加一些关于作为API Gateway iOS swift SDK一部分生成的空.swift文件的详细信息。事实上,当我尝试所有合理的尝试访问我知道的Lambda函数将返回的内容时,我几乎看到了这个错误:
类型为“Empty”的值没有成员“”