こんにちは、Unityエンジニアのオオバです。

普段書かないから
Objective-Cの文法って忘れちゃうんですよ。

特にC#やJavaScriptに書き慣れていると、
文法の文化が違いすぎて間違えるんですよね。

↑といった超基本的なことを忘れてしまいます。

本記事ではObjective-Cの
インスタンスメソッド文法を
速攻で思い出せるように
完全保存版としてまとめました。

どうぞ思い出すためにご活用ください

Objective-Cインスタンスメソッド図解

引数なしインスタンスメソッド定義

【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_0

引数なしインスタンスメソッドの実行

【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_1


第一引数をもつインスタンスメソッド定義

【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_2

第一引数をもつインスタンスメソッドの実行

【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_3


第二引数をもつインスタンスメソッド

【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_4

第二引数をもつインスタンスメソッドの実行

【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_5

※第二引数からラベルが登場するので注意です。

第3引数以降は第二引数のルールにしたがって
記述が増えていくだけです。

ここからはオオバの主観ですが、
忘れやすいポイントをまとめています。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

7つのインスタンスメソッドの定義で忘れやすい文法まとめ

  1. インスタンスメソッドは-で始める
  2. 戻り値の型には()が必要
  3. メソッド名 : `printExistFile
  4. メソッド名の後に:が必要
  5. 引数の型は()カッコで囲む
  6. 第二引数からラベルが登場
  7. 第二引数のラベルの後には:が必要

あくまで主観ですが、
よく忘れます。

4つのインスタンスメソッド呼び出し忘れやすい文法まとめ

  1. メソッドは[ ]で囲む
  2. 自分(self)が呼び出し元でも必ず記述が必要
  3. 引数の手前に:が必要
  4. 第2引数からラベルが必要

特に第2引数からラベルが必要になるのを忘れやすいです。

処理をまとめたメソッドを作って実践

プログラミングの文法を覚えるには、
実践(実際に書く)あるのみです。

例として前回記事の処理をメソッド化してみます。
【iOS開発】Objective-Cでダウンロードしたファイルの存在を確認する方法

printExistFileというメソッドを定義しました。

💻ソースコード : printExistFile.m
- (BOOL) printExistFile:(NSString*) targetFilePath
{
    // 【1. ファイルまでのパスを作成】  
    // ダウンロードした画像が格納されたディレクトリパス取得(適宜変更してください)  
    NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  

    // ファイルパスの作成  
    NSString *filePath = [[dirPaths objectAtIndex:0] stringByAppendingPathComponent:targetFilePath];  

    // 【2. NSFileManagerを取得】  
    NSFileManager *fileManager = [NSFileManager defaultManager];  

    // 【3. NSFileManagerのfileExistsAtPathメソッドを実行】  
    // fileExistsAtPathメソッドでファイルの有無確認  
    BOOL isExist = [fileManager fileExistsAtPath:filePath];  

    // 1が出力されたら存在する  
    NSLog(@"isExist: %d", isExist);  
    return isExist;  
}
呼び出す時はこちら
BOOL isExists = [self printExistFile:@"img.png"];  

忘れやすいポイントを抑えつつ、
メソッド化できたのではないかと思います。

まとめ

Objective-C文法は忘れやすいです。
iOS開発はSwift一択のため、
Objective-Cを使うことがない。

UnityでiOSプラグインを作る時に
登場するんですよね。

Swiftを実行するための
橋渡しとして使ったりもします。

ときどきでも使う言語の思い出しコストを
最小限にするために本記事を書きました。

ぜひ活用していただければと思います。

「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!

最後まで読んでいただきありがとうございました!
すばらしいObjective-Cライフをお過ごしください。

オススメ記事