iOS 〜初めてのObjective-C〜

こんにちは、うさです。 本日からiOSアプリの勉強を開始しました。 言語は「Objective-C」で開発していきます。 Objective-Cはもとより、 C言語すら勉強していない僕は記述方法から大苦戦です。 基本的なところからどんな意味を持つのかを勉強していきましたので、 僕の頭に叩き込む為に、書いていきます。 (書籍等を見ながら書いていきますが解釈の違いがあるかもしれません。) ということで、一つのアプリを例にとってみます。 そのアプリは「デートピッカーを使っての日数計算」するものです。 まずは、下記のようにウィジェットの配置をしていきます。 X-codeはドラッグ&ドロップで簡単に配置できて便利ですね!!(以前やったAndroidStudioもそうでしたが) スクリーンショット 2015-02-02 15.12.33 そして、アシスタントエディタへ接続してプロパティ宣言等を行い、 完成したコードがこちら!! 今まで勉強してきたJavaなどと違った記載のされ方なので、 インスタンスやメソッドが何をさしているのかわからないですねー!! 基本的なところを確認していくとは言ったものの、 X-codeをインストールした時点で記載が合あった箇所は省いて記述の仕方と意味を理解していきます。 それではまず、ラベルの初期表示するコード NSDateFormatterは日付の書式のクラスでObjective-CではクラスにNSが最初に付くみたいですね。 *formatterは変数なのですが「*」が前についているので何じゃこりゃ!!って感じです。 「*」はint型のように1や2等の実際の値が入るのではなく、 値が記録されているアドレス(参照先)を入れるらしいのです。 「=」の後を見ていって確認します。 [NSDateFormatter alloc]はNSDateFormatterインスタンスを作成し、 initメソッドで初期化を行っています。 これは、実際の値ではなく初期化されたインスタンスを変数formatterとするということですね。 なかなか使いどころが難しいですが、慣れるしかないですね。 で、やっと次の行ですが、 こちらは、formatterの書式を設定しています。 続いて self.toDay.textはJavaでも同じような記述をしていましたが、 「self(自分自身のインスタンス)」の「toDay(プロバティ)」が指している「text(テキスト)」に代入という事ですね。 何を代入するのかというと、 NSDateクラスのdateメソッドで本日の日付をstringFromDateでdate型からstring型へと変更しています 次の も先ほどと同じ値をselectedDataプロパティへ設定しています。 最後の日数の隣のラベルは 「@」は後ろの型を自動的に検知して表示します。 書式間違え等がなくなり、入力を短縮出来るわけですね。 これで、ラベルの初期値がすべて設定されました。 それでは、デートピッカーで設定した日付を検知して選んだ日付と日数に表示していきます。 アクション接続でのメソッドt定義として – (IBAction)changedDate:(UIDatePicker *)sender { と記載されます。 最初に付いている「-」はインスタンスに対して実行するインスタンスメソッドとのこと。 「+」もあり、それはクラスに対して実行するクラスメソッドだそう。 (これは後々理解していきます) IBActionはこのメソッドをUI部品と接続して使う事を示しています。 changedDateというメソッド名とし、 (UIDatePicker *)はデートペッカーという部品のクラスである事を示し、 senderはこのアクションの値になります。 それでは、このアクションについて。 最初の2行は全く同じ処理を行い、 日付の初期設定をしています。 3行目は self.selectedDate.text = [formatter stringFromDate:sender.date]; 「sender」つまりデートペッカーで選んだ日付をselectedDateに表示します。 4行目は toDay(現在の日付)をstring型からdate型へと変換しています。 そして デートピッカーの日付と現在の日付間の秒数を「timeIntervalSinceDate」で求めて秒数を示すインスタンスに代入しています。 その値を secs/(60 * 60 * 24)で”日”へ変更してroundで四捨五入し、numDaysへ代入 最後に days(日数)へnumDaysを代入しています。 すると、デバイスへの表示が以下のようになります。 スクリーンショット 2015-02-02 16.38.47 今回はいろんな♪記号等の意味を確認しながら一つの例を見ていきました。 明日以降もObjective-Cを勉強しながら、 iOSでアプリを作っていきます。 以上、うさでした。

Usami Go

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です