0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Objective-C

Last updated at Posted at 2025-03-28

Objective-C

目次

  1. Objective-Cとは
  2. オブジェクト指向とは
  3. Swiftとの比較
  4. まとめ

Objective-Cとは

Objective-C はオブジェクト指向型のプログラミング言語であり、Apple の iOS や macOS などの開発に広く使用されている。

C言語の基本構造をベースにしており、そこに Smalltalk というオブジェクト指向言語が取り入れられている。
現在は Swift という新しいプログラミング言語が iOS アプリの開発で主流として使われている。

Smalltalk … オブジェクト指向の元祖


オブジェクト指向とは

「もの」を組み立てるように表現してコンピュータに指示する考え方のことである。
ものを組み立ててプログラムを表現するために、ものの設計図である クラス (車の設計図) と設計図から作成される インスタンス (黒い車) が必要になる。
クラス (車の設計図) は使いまわして、複数のインスタンス (黒い車や赤い車など) を生成することができる。

参考:クラスの概念


Swiftとの比較

変数の宣言

Objective-C

int number = 5;
NSString *string = @"Hello, World!";

Swift

var number = 5          // 型推論により自動的に Int 型
let string = "Hello, World!"  // 型推論により自動的に String 型

NSString とは

  • Objective-C の文字列クラスであり、中身を変更できないオブジェクトのこと。

型推論とは

  • プログラムのソースコードを見て、「この値は数かな?文字かな?」と自動で考えてくれる仕組みのこと。
  • これは、プログラムを動かすための変換をする「コンパイラ」と呼ばれる仕組みが行なっている。

メソッドの呼び出し

Objective-C

[myObject doSomethingWithParameter:parameter];

Swift

myObject.doSomething(parameter)

WithParameterは必須ではないが、可読性を向上させるために推奨される
(Objective-Cに関して、[myObject doSomething:parameter];とも書くことが出来る)


コレクションの宣言

Objective-C

NSArray *array = @[@"Apple", @"Banana", @"Cherry"];
NSDictionary *dictionary = @{@"Key1": @"Value1", @"Key2": @"Value2"};

Swift

let array = ["Apple", "Banana", "Cherry"]
let dictionary = ["Key1": "Value1", "Key2": "Value2"]

NSArray とは

  • 順番に要素を持つ配列。

NSDictionary とは

  • キーと値のペアを持つデータ構造。

NS って何?

  • Next Step (NeXTSTEP) の略で、Objective-C のクラス名の先頭に付けられている。

条件分岐

Objective-C

if (a == b) {
    // 処理
}

Swift

if a == b {
    // 処理
}

Objective-CもSwiftでも書き方はシンプルで、類似している


ループ

Objective-C

for (int i = 0; i < 10; i++) {
    // 処理
}

Swift

for i in 0..<10 {
    // 処理
}

Swift のループはシンプルなのが特徴

  • Objective-C の for ループでは 初期化・条件・更新 の 3 つの要素を明示的に書く必要がある。
  • Swift の for-in ループは 範囲 (Range) を指定するだけで簡潔に書ける。

まとめ

比較項目 Objective-C Swift
変数宣言 int number = 5; var number = 5
文字列 NSString *string = @"Hello"; let string = "Hello"
メソッド呼び出し [obj doSomething:parameter]; obj.doSomething(parameter)
配列 NSArray *array = @[@"Apple", @"Banana"]; let array = ["Apple", "Banana"]
辞書 NSDictionary *dict = @{@"Key": @"Value"}; let dict = ["Key": "Value"]
条件分岐 if (a == b) {} if a == b {}
ループ for (int i = 0; i < 10; i++) {} for i in 0..<10 {}

Objective-Cは長年 iOS 開発の中心的な言語だったが、現在は Swift が主流となっている。
Swift はシンプルで安全性が高く、可読性も向上しているため、多くの開発者が移行を進めている。ただし、既存のObjective-Cのコードベースやレガシープロジェクトでは依然として重要な役割を果たしており、Swiftとの相互運用性を活かして活用され続けている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?