我是Xcode和Swift的新手(...和认真的Swift编程),希望有人能帮助我弄清楚如何查看/访问此类对象的值。
我的ViewController.swift中有此代码,用于调用REST API(通过AWS API Gateway),并尝试将result
打印到控制台。显然,我在这里所做的只是打印类对象的地址:
@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 result is... \(result)")
}
return nil
}
}
打印内容如下:
You clicked invoke api...
The result is... <AmplifyRestApiTest.Empty: 0x600002020770> {
}
(其中AmplifyRestApiTest是我的Xcode项目的名称。尽管我不使用AWS Amplify构建该项目;主要是因为使用它时遇到了问题。)
我在Empty
中确实有这个Empty.swift
类,它是API Gateway生成的iOS Swift SDK的一部分:
import Foundation
import AWSCore
@objcMembers
public class Empty : AWSModel {
public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
var params:[AnyHashable : Any] = [:]`
return params
}
}
现在,当我在打印语句上设置断点时,这就是我所看到的:
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
有人可以告诉我为什么我看不到与此对象有关的值吗?拆开此API响应的策略是什么?
我知道我正在成功调用REST API,因为我可以看到(通过Cloudwatch日志)它将结果返回给客户端。所以这篇文章只是我尝试访问相应对象的方法。
答案 0 :(得分:0)
我建议在这里浏览文档... https://cocoapods.org/pods/AWSCore#getting-started-with-swift
您导入了适当的标题吗?
希望这会为您指明正确的方向。
答案 1 :(得分:0)
使用lldb命令po打印对象。
(lldb) po @"lunar"
lunar
(lldb) p @"lunar"
(NSString *) $13 = 0x00007fdb9d0003b0 @"lunar"