Как получить значение переменной IBInspectable с помощью get return?

У меня есть простое приложение оценки, и у меня есть;

 @IBInspectable var commingId: Int
        {
        get
        {
            return self.commingId;
        }
        set
        {
            refreshStars()
        }
    }


func starClicked(sender:UIButton){
    if(self.canEdit){
        rating = sender.tag;
        if(self.delegate != nil){
            self.delegate.starRateEdited(Double(rating))
        }

        self.refreshStars()
        print("Selected \(sender.tag) - commingId \(self.commingId)")



    }
}

коды. когда я пытаюсь получить возврат self.commingId дает мне;

Ошибка EXC_BAD_ACCESS(код =2, адрес =0x7fff571egff8)

Как я могу получить commingId внутри него?

2 ответа

Решение

Почему ты вообще переопределил геттер?

Похоже, вам просто нужно позвонить refreshStars() после того, как значение установлено, так что просто работайте с willSet/didSet

@IBInspectable var commingId: Int {
    didSet {
        refreshStars()
    }
}

Попробуйте следующее:

var commingRating: Int = 0

@IBInspectable var commingId: Int
            {
            get
            {
                return self.commingRating;
            }
            set
            {
                commingRating = newValue
                refreshStars()
            }
        }


    func starClicked(sender:UIButton){
        if(self.canEdit){
            rating = sender.tag;
            if(self.delegate != nil){
                self.delegate.starRateEdited(Double(rating))
            }

            self.refreshStars()
            print("Selected \(sender.tag) - commingId \(self.commingId)")



        }
    }
Другие вопросы по тегам