Я пытаюсь добавить сгенерированный SDK API шлюза AWS в мое приложение для iOS, написанное в Swift 3. В коде, создаваемом AWS, содержится много вещей, которые не компилируются в Swift 3, но, надеюсь, я могу работать с большинством их. Однако одна из ошибок заставила меня запутаться.Невозможно установить конфигурацию AWSAPIGatewayClient в Swift 3?
The (предкомпилированный) AWSAPIGatewayClient класс из библиотеки AWS выглядит следующим образом:
open class AWSAPIGatewayClient : NSObject {
open var configuration: AWSServiceConfiguration! { get }
open var apiKey: String!
}
А класс, порожденный ребенок имеет эту инициализацию функцию:
init(configuration: AWSServiceConfiguration) {
super.init()
self.configuration = configuration
...
}
Компилятор естественно жалуется, что свойство конфигурации is get-only:
AWSMyServiceClient.swift:127:25: Cannot assign to property: 'configuration' is a get-only property
Я пропустил что-то obviou s, или как это может работать? Я не смог найти кого-то другого с той же проблемой, что заставляет меня подозревать, что что-то не так с моим конкретным кодом.
Я всегда использовал АМС API шлюза Obj-C код, сгенерированный в Swift 2.2 проекта. Я преобразовал свой проект в Swift 3, и он работает хорошо (все еще с кодом, сгенерированным с помощью obj-c). Сегодня я заметил, что они предоставляют код Swift. Я попытался заменить OBJ-код на сгенерированный Swift, но, как вы сказали, в нем много ошибок компиляции. Я не собираюсь исправлять ошибки компиляции в сгенерированном коде. Это должно быть готово. Я не могу найти документацию о сгенерированном Swift, когда она была введена, для какой версии и как ее использовать. Пока я буду придерживаться obj-c. –
Спасибо, это был очень полезный ввод. Я попробую следующий подход, так как большая часть преимуществ автоматического генерации кода теряется, если вы должны вносить в него изменения каждый раз, когда вы его обновляете. –