Connect IQ неожиданный тип Ошибка при использовании setText

При нажатии на пункт меню, я хочу установить текст метки, однако я получаю ошибки: "Неудачный вызов " и "Неожиданная ошибка типа".

В моем меню делегат у меня есть:

using Toybox.WatchUi as Ui;
using Toybox.System as Sys;
using Toybox.Position as Position;

class DiscGolfMenuDelegate extends Ui.MenuInputDelegate {

    var _view;

    function initialize() {
        MenuInputDelegate.initialize();
        _view = new DiscGolfView();
    }

    function onMenuItem(item) {
        if (item == :measure_throw) {
            Sys.println("item 1");
            _view.setLongestThrow("yeet");
        } else if (item == :start_game) {
            Sys.println("item 2");
        }
    }

}

setLongestThrowFunction находится в моем классе View и выглядит так:

function setLongestThrow(msg) {
    longest_throw_label.setText(msg);
}

Не имеет смысла, почему я получаю неожиданную ошибку типа, когда я прохожу через строку. Кто-нибудь видит то, чего я не вижу? Благодарю.

1 ответ

Я считаю, что проблема не с _view или строка передана setText, но с longest_throw_label,

Вероятно, проблема в том, что вы инициализируете _view в конструкторе меню, но представление еще не выложено (система не вызывала _view.onLayout(dc) потому что вид не был выдвинут).

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