Проверьте инициализированное значение Struct внутри UIView - PullRequest
0 голосов
/ 27 марта 2020

У меня есть UIView с custom-init, поэтому я могу изменить его mode:

var wishlistMode: Constants.WishlistMode.Type?

init(wishlistMode: Constants.WishlistMode.Type) {
    self.wishlistMode = wishlistMode
    super.init(frame: CGRect.zero)

    setupViews()        
}

Для этого я создал это struct:

struct Constants: Equatable {

    struct WishlistMode: Equatable {
        static let isCreating = WishlistMode.self
        static let isChanging = WishlistMode.self
    } 

/*...*/

}

Внутри моего UIView У меня есть этот function для проверки WishListMode, но каким-то образом он всегда печатает isChanging, даже если я инициализирую view с let v = CreateNewListView(wishlistMode: Constants.WishlistMode.isCreating):

func checkWishlistMode(){
    if self.wishlistMode == Constants.WishlistMode.isChanging {
        print("isChanging")
    } else if self.wishlistMode == Constants.WishlistMode.isCreating {
        print("isCreating")
    }
}

Я понятия не имею, что я делаю неправильно. Может ли кто-нибудь помочь мне здесь?

1 Ответ

1 голос
/ 27 марта 2020

Вместо этого измените свою структуру с константами на перечисление

enum WishlistMode {
    case isCreating
    case isChanging
}

, а в коде UIView измените с Constants.WishlistMode.Type на Constants.WishlistMode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...