読者です 読者をやめる 読者になる 読者になる

Objective-C学習log:Objective-Cの文法1

たのしいCocoaプログラミング[Leopard対応版]もようやくPart 3の「C言語Objective-C」に入りました。

まず、Lesson 8では文法実験のためのプロジェクトを作成します。ただ、Xcodeのバージョンが最新版とは違うので注意が必要です。

C言語用のプロジェクトは、新規プロジェクトでCommand Line Toolを選択し、次の画面でTypeをCとします。これはC言語の学習のときに、散々作成したものです。Objective-C用のプロジェクトは、Command Line Toolを選択し、次の画面でTypeをFoundationとします。

本書では、ひとつひとつファイルを作成するのではなく、これら実験用のプロジェクトのなかで、小さいプログラムを書いて実行していくというやり方をとっています。

Lesson 9はC言語の文法なので、復習がてらにざっと目を通しました。

さて、本題のLesson 10 Objective-Cの文法です。

Objective-Cの書き方

  • Objective-Cでプログラミングするときは、変数や制御文に関してはC言語のものを使い、追加されたオブジェクト指向に関する文法を新たに学ぶ
  • C言語では、関数という単位にまとめて処理を記述していたが、Objective-Cでは、オブジェクト指向を使う(クラスを使う)
  • 関数も問題なく使える
  • クラスの記述は「クラスの宣言」と「クラスの実装」の2つの部分からなる
  • クラスの宣言のファイルには、「.h」(ヘッダ)という拡張子をつけ、クラスの実装のファイルには、「.m」(メソッド)という拡張子をつける

クラスの宣言

クラスの宣言は.hファイルに以下のような記述をしていくことになります。

#import <ヘッダ・ファイル名>・・・フレームワークのクラス宣言の読み込み
#import "ヘッダ・ファイル名"・・・自分でつくったクラス宣言の読み込み

@interface クラス名:スーパークラス
{
 変数の型 変数の名前・・・インスタンス変数の宣言
}

- (戻り値の型)インスタンスメソッド名・・・インスタンスメソッドの宣言(引数なし)
+ (戻り値の型)クラスメソッド名・・・クラスメソッドの宣言(引数なし)

@end

なお、引数が1つのインスタントメソッドは

- (戻り値の型)メソッド名:(引数の型)引数名;

引数が2つ以上のインスタントメソッドは

- (戻り値の型)メソッド名:(引数の型)引数名 ラベル:(引数の型)引数名;

となります。

クラスの実装

クラスの宣言は.mファイルに以下のような記述をしていくことになります。

#import "ヘッダ・ファイル名"

@implementation クラス名

- (戻り値の型)メソッド名
{
メソッドの処理
}

@end