• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iPhoneアプリプログラミングButton)

iPhoneアプリプログラミングでボタンを押した時に月を移動する方法

このQ&Aのポイント
  • iPhoneアプリのプログラミングでボタンを押した時に月を移動する方法について困っています。年月日曜日を取得する際にエラーが出てしまい、viewDidLoad内の変数の値を変える方法を知りたいです。
  • ボタンを押した時に月を移動するプログラムを作っていますが、エラーが出てうまくいきません。年月日曜日を取得する際にエラーが出てしまうため、viewDidLoad内の変数の値を変える方法について教えてください。
  • iPhoneアプリのボタンを押した時に月を移動するプログラムを作っていますが、エラーが出てしまいます。年月日曜日を取得する際にエラーが発生してしまい、viewDidLoad内の変数の値を変える方法がわかりません。どうすれば正しく実装できるでしょうか?

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

  • ベストアンサー
回答No.2

> Use of undercleared identifier '_year' > Property 'month' not found on object of type 'ViewController *' これって、単純にyearやmonthが宣言されてないだけのように見えますが。 この英語メッセージの意味を調べて理解していますか? 単純に訳せば 「"_year"という宣言されてない識別子が使用されています」 「"month"というプロパティは'ViewController *'型のオブジェクトの中にありません」 です。 最初の質問で「viewcontroller not found 」などと全く意味の異なる変なメッセージを書かずに 正確なメッセージ内容を書けば、それだけで一発でわかるものですよ。 ViewController.hのソースが開示されていませんが、 そのソースの@interface~@endの間に @property (assign, nonatomic) NSInteger year; @property (assign, nonatomic) NSInteger month; といった感じで宣言されていますか? もし、この宣言をすればいいだけなのに、それが必要なことがわからないということなら、 Objective-Cの基礎中の基礎を全く理解できてないのだと思います。 あなたが参考にしている 「詳細! Objective-C iPhoneアプリ開発 入門ノート」 は、私は読んだことないですが、「Part2 Objective-Cの基礎知識」 に、そのあたりの説明が書かれてないですか? 詳しくは、Appleが開発者サイトで提供している 「Objective-Cプログラミング言語」 https://developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf‎ や 「Objective-Cによるプログラミング」 https://developer.apple.com/jp/devcenter/ios/library/documentation/ProgrammingWithObjectiveC.pdf でObjective-Cの言語仕様をちゃんと勉強した方がよいと思います。

ifonesapp
質問者

お礼

回答ありがとうございます。 ViewController.hに@propertyでコードを書いたとこプログラムを始めて日が浅く独学なもので勉強方針がよくわからず、とりあえずコードを書いて動くものをつくりながら勉強を進めてやっています。 参考書のそのページは目を通したはずですが、身についていませんでした;確かに書かれていますね。 読んだ時はどんなときに使うのか分かっていなかったと思うので、参考書は繰り返し目を通す必要がありそうですね。 PDFを提示していただいて、勉強方針を提示していただけてありがたいです。 課題として目を通しておきます。 冒頭の件、気をつけます。次回以降の質問の際に参考にさせていただきます。 回答していただいた事を参考にコードを書き換えて無事実行はできたので、次の機能の処理を組んだのですが、月を移動する処理のところで新たに問題が発生しました^^; この件は新たに質問トピを作ろうと思いますが、そこでコードをさらすので良かったら見てください。

ifonesapp
質問者

補足

お礼で間違いました。 補足にて訂正させていただきます。 >ViewController.hに@propertyでコードを書いたとこプログラムを始めて日が浅く独学なもので勉強方針がよくわからず、とりあえずコードを書いて動くものをつくりながら勉強を進めてやっています。 ViewController.hに@propertyでコードを書いたところ、無事に実行できました。

その他の回答 (1)

回答No.1

以下を補足してもらえると、何かわかるかもしれません。 ・エラーが出たのは、ビルド時(orビルド前)ですか?実行時ですか? ・「viewcontroller not found 」というエラーメッセージ内容は この通りですか?前後のメッセージを省略して書いたりしていませんか? 適当に省略して書いたのなら正確なメッセージ内容を書いてください。 ・year,_year,month,_monthはどこにどのように宣言していますか? 正確な内容を書いてください。今回の問題では重要なポイントだと 思います。 ・今回のエラーと直接の関係はないかもしれませんが、 previewメソッドの内容がいろいろおかしいです。 実際にエラーが発生した時のソース内容をそのままコピペしていますか? タイプし直したり、少し加工したりしていませんか? 以下の点が指摘内容です。 (指摘1) - (void) preview:(id *)sender{ の部分は - (void) preview:(id)sender{ とすべきです。 idは*をつける必要ありません。 参考: http://iphone-tora.sakura.ne.jp/kihon_datatype.html (指摘2) self.month=12 の後に「;」がありません。 (指摘3) self.month=12 の次の行の _month--; が意味不明です。 1月の前月として12月を設定した後、もう1カ月減らす理由がわかりません。 いろいろ試行錯誤している途中のゴミが残っているのでしょうか。 self.monthと_monthを混在して使っているのも一貫性がないと思います。

ifonesapp
質問者

補足

回答ありがとうございます。 以下にテキストファイルとしてコードを貼り付けるので醜いコードですが見ていただけるとありがたいです。 (日付の表記はゴリ押しですので見づらくて申し訳ないです。何か他の方法があれば教えていただきたいです。) http://www.dotup.org/uploda/www.dotup.org4892895.txt エラーはビルド時に警告されます。 エラーコードは以下のとおりです。 Use of undercleared identifier '_year' Property 'month' not found on object of type 'ViewController *' UIButtonに引数を渡せて、返り値としてmonthとyearを返せれば楽なのですが・・・ self.monthや_monthなどは適当です。selfや_を付随させてメソッドからViewControllerの変数にアクセスしているようなコードを見ることが多かったので試したのですがうまくいきませんでした。