Я новичок и в 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-шлюзом 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
}
}
Теперь, когда я устанавливаю точку останова в операторе print, это то, что я вижу:
Может кто-нибудь сказать мне, почему я не вижу значений, относящихся к этому объекту? Какова стратегия распаковки этого ответа API?
Я знаю, что я успешно вызываю REST API, потому что вижу (через журналы Cloudwatch), что он возвращает результат клиенту. Так что этот пост - просто моя попытка получить доступ к соответствующему объекту.
Еще одна деталь: я использую iOS Swift SDK, сгенерированный API-шлюзом, и следовал всем инструкциям по использованию SDK в моем проекте.