未経験者歓迎!知識ゼロからシステムエンジニアを目指す

Objective-C

概要

Objective-CはC言語をベースにオブジェクト指向機能を持たせた言語です。
最近では、iOS(iPhoneやiPad)のアプリケーションを開発するための言語として注目を浴びています。

 

Cとは異なるObjective-Cの特徴としては、「@」で始まるコンパイラディレクティブがあります。
コンパイラディレクティブとはコンパイラに対してクラスの宣言や実装を明示するために記載してあげるためのものです。

 

Objective-Cのソースを見ると、この見慣れない「@」によってマニアックで難解なイメージを抱いてしまうかもしれません。
ただ、iOS(iPhoneやiPad)のアプリケーションの開発を行うのであれば、必ず覚えないといけない言語になります。
逆にiOS用アプリ以外の開発では使う場面があまりないので、覚えなくてもいいでしょう。

 

良いところ

処理速度はJavaなどの中間コード型言語より速く、C言語やC++よりは若干遅いです。
もしあなたが「C言語を習得している」のであれば、Objective-Cを学習するのは簡単です。

 

悪いところ

もしあなたが「C言語を習得していない」のであれば、いきなりObjective-Cを学習するのは困難でしょう。

 

よくある例ですが、プログラミング初心者がiPhoneやiPadのアプリを作りたいと思って「iPhoneのプログラミングの入門書」を買ったとします。
しかし多くの方は最初の数ページで挫折します。
なぜなら入門書なのに書いてあることが分からないからです。
実は多くのiPhone入門書では「Objective-C」を理解しているものとして書かれているのです。

 

そのため、仕方なく「Objective-Cの入門書」を手に入れて勉強します。
ところがまた最初の数ページで挫折します。
多くのObjective-Cの入門書では「C言語」を理解しているものとして書かれているからです。

 

つまり、あなたがプログラミング初心者なら、まず「C言語」をマスターする必要があるのです。

 

サンプルコード

Objective-Cで「Hello World」を表示するソースコードです。

 

#import <Foundation/Foundation.h>

 

int main()
{
 @autoreleasepool {
  NSLog(@"Hello, World!");
 }
 return 0;
}

 

サンプルコード解説

 

1行目の「Foundation/Foundation.h」は、「Foundation」という基本機能を提供するフレームワークを意味します。

 

「int main()」はmain関数と呼ばれ、Objective-Cのプログラムを実行するときに一番最初に呼ばれる関数です。
関数とは、引数(ひきすう)と呼ばれるデータを受け取って、結果を返す命令文の集まりです。

 

Objective-Cの関数はC言語と同様に「返却する結果の型 関数の名前(引数)」というルールで書きます。
ですので、このmain関数は引数は「なし」で、「int」型の結果を返す「main」という名前の関数という意味になります。

 

6行目の「NSLog()」で「Hello, World!」という文字列を出力しています。

 

コンパイル方法

先ほどのサンプルコードを「main.m」という名前で保存します。

 

C言語と同様、「gcc」というコマンドでコンパイルができます。
Macでターミナルを起動し、コンパイルを実行します。

 

> gcc -c main.m

 

コンパイルが正常に終了すると、「main.o」というバイナリファイルが出力されます。

 

次に「main.o」が必要とするフレームワークを関連付けて、実行可能なファイルを出力します。
これを「リンク」と呼びます。

 

> gcc -o hello main.o -framework Foundation

 

リンクが正常に終了すると、「hello」という実行可能なファイルが出力されます。

 

 

実行方法

「hello」を実行すると「Hello, World!」が標準出力に表示されます。

 

> ../hello
Hello, World!

 

ここではコマンドラインからの実行例をあげましたが、通常、Objective-Cのコンパイルやリンクは「Xcode」と呼ばれる開発環境で実施します。
「Xcode」とはアップルから提供されている統合開発環境のことです。

 

Objective-Cの求人報が多い転職サイト

PR




PR


HOME SE入門講座 SEの人月単価 SE転職サイト比較 SEおすすめ書籍 お問い合わせ