• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:objective-cでの引数について)

objective-cでの引数について

このQ&Aのポイント
  • オブジェクティブCでの引数の使い方について解説します
  • ボタンの引数に数値変数を渡すことができるかどうか調べました
  • エラーが出てしまい動作しない場合の対処法について考えます

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

幾層かに間違いが重なっています。 まず、Objective-Cの文法に「-(void)buttonDidPush(Integer)x」は合致しません。引数は、メソッド名にコロン(:)をつけたあと、ないしキーワードにコロンを付けたあとにおくのが、Objective-Cの文法です。 「Integer」という型はありません。typedefを使い、カスタムで定義しない限り、使える型ではありません。「NSInteger」の勘違いではありませんか? 「-(void)buttonDidPush(Integer)x」は、訂正するとこうなります。「-(void)buttonDidPush: (NSInteger)x」 しかしこれでもまだ間違いが残っています。 UIControl(UIButtonは、UIControlのサブクラス)のアクションに使えるメソッドの形式はきまっています。メソッド名を仮に「myAction」とすると、 (1) - (void)myAction (2) - (void)myAction: (id)sender (3) - (void)myAction: (id)sender forEvent: (UIEvent *)event この3パターンです。 (1)は、引数を持たないメソッド。(2)は、アクションを送ったコントロール(ボタン)自身を引数に持ちます。 なお、UIView(UIControlは、UIViewのサブクラス)は、プロパティ「tag」を持ち、整数値(int)が型になります。これを使って、アクションの送信先に、整数値を送ることができます。 - (void)myAction: (id)sender { UIButton *btn = (UIButton *)sender; int x = btn.tag; }

barakamon
質問者

お礼

間違いだらけの私の質問に答えてくださり大変ありがとうございます! まだ、暗中模索の状態ですが、この解答によりまたよく分かっていなかった個所が明確になりました。 重ねますがありがとうございます!