ivlevAstef / DITranquillity

Dependency injection for iOS (Swift)
MIT License
423 stars 32 forks source link

Внедрение зависимостей через свойства используя KeyPath swift 5 #140

Closed makleso6 closed 5 years ago

makleso6 commented 5 years ago

Спасибо за библиотеку! в swift 5 не поддерживается внедрение зависимостей через свойства используя KeyPath если свойство private(set)

class AppPart: DIPart {
    static func load(container: DIContainer) {
        container.register(Presenter.init)
        container.register(ViewController.init)
            .injection(\.presenter)
    }
}
class Presenter {
}

class ViewController {
    private(set) var presenter: Presenter!
}
patskovn commented 5 years ago

Looks like resolved swift bug https://bugs.swift.org/browse/SR-7448

ivlevAstef commented 5 years ago

Да к сожалению Apple решили, что это баг и впринципе они правы. Но как по мне это была отличная бага позволяющая хоть что-то сделать незаконного :)

Поэтому придется удалять private(set) в подобных местах, и надо бы документацию проверить

makleso6 commented 5 years ago

Спасибо)