2016-09-24 14 views
1

メニュー項目を押すとラベルのテキストを設定したいが、「<シンボルの呼び出しに失敗しました」および「予期しないタイプエラー」というエラーが表示されます。 setLongestThrowFunctionが私のViewクラスに位置しており、のように見えているsetTextを使用しているときにIQ予期しないタイプのエラーが表示される

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"); 
     } 
    } 

} 

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

私は予想外取得したい理由は、意味がありません私は私のメニューデリゲートで

私は文字列を渡しているので、タイプエラー。誰かが私が何かを見ない?ありがとう。

+0

'' 'longest_throw_label.setText(msg.toString())' ''私はそれが馬鹿に見えますが、意味がありませんが、それが助けになることを知っています。 –

+0

'失敗した呼び出し'は、ヌルオブジェクトでメソッドを呼び出そうとしたか、変数があなたが思うタイプではないことを意味する可能性があります。 msgの値と '_view'の値を​​異なる行に出力し、それらが何であるか(' Obj:51'のようなものでなければなりません)、またはどの行がクラッシュするかを確認してください。それはおそらくあなたの質問に答えるでしょう。 – Aderis

答えて

1

私はこの問題が_viewまたはsetTextに渡された文字列ではなく、longest_throw_labelと考えています。

メニューコンストラクタで_viewを初期化しても、ビューがまだレイアウトされていない可能性があります(ビューがプッシュされていないため、_view.onLayout(dc)は呼び出されていません)。

関連する問題