[iPhone] Objective-C クラスメソッドとインスタンスメソッドを呼び出す

Objective-C でのメソッド、インスタンスメソッドとクラスメソッドの呼び出し方、使用例について、簡単に説明します。
 

Swift 4.1
Xcode 9.4

 

Objective-Cのメソッド

 
Object-Cのメソッドにはインスタンスメソッドとクラスメソッドの2つがあります。

    • クラスメソッド:
      • クラスをインスタンス化しなくても実行できるメソッド
      • 先頭にマイナス(+)をつけて定義
    • インスタンスメソッド:
      • クラスをインスタンス化して実行するメソッド
        • インスタンスの変数を使うことができる
      • 先頭にマイナス(-)をつけて定義

 

 

クラスメソッド

 
クラスメソッドはインスタンスとは関連していないため、インスタンスを生成して、インスタンス変装を利用する事ができないグローバル関数のようなものとなります。
 
簡単な例で確認するとわかりやすいので、XcodeでHello World などを実行する Single View Application のプロジェクトを作成します。
 
最初にクラスファイルをプロジェクトの中に作成します。Menuの [File] から
[New][File…] にある Objective-C Files File を選び(アイコンの位置は変わる事がありますので臨機応変に)
 

 
名前を決めて保存。保存先はプロジェクトフォルダー内に置きます。
 

 
同名のヘッダーファイルを作成します。
同じく[New][File…] にある Header File を選択して「Next」
 

 
プロジェクトにこのように MyClass.h MyClass.m のファイルが作成されています。
 

 
この MyClass に className というクラスメソッドを定義して、ViewController.m から呼び出してみます。
 
MyClass.h

 

MyClass.m

 
ViewControllerから呼び出して使う時は、メッセージ式を使ってメッセージを介して呼び出します。
 
ViewController.m

 
これを実行してLogを確認するとこのようになります。
 

 

インスタンスメソッド

 
インスタンスメソッドは別クラスなどからインスタンスを生成して利用します。
 
MyClass に myMethod を定義していきます。
 
MyClass.h

MyClass.m

 
ViewController.m からメソッドを呼び出します。
 
ViewController.m

 
デバッグログで「こんにちは山田です」とresultの値を表示しています。
 

 
 

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


Play Ground
本業と並行してやるには月額制なのがありがたいです。


無料で転職まで
これはiOSアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールで「エンジニアになって職を得たい」のであれば手っ取り早いかもしれません

受講料無料:社会人転職コース


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする