こんにちは、Unityエンジニアのオオバです。
普段書かないから
Objective-Cの文法って忘れちゃうんですよ。
特にC#やJavaScriptに書き慣れていると、
文法の文化が違いすぎて間違えるんですよね。
- メソッドを
[]
で囲む - 戻り型に
()
を付ける
↑といった超基本的なことを忘れてしまいます。
本記事ではObjective-Cの
インスタンスメソッド文法を
速攻で思い出せるように
完全保存版としてまとめました。
どうぞ思い出すためにご活用ください
Objective-Cインスタンスメソッド図解
![【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_0](https://gyazo.com/3f03cc8e97af51609fd0a5dd69150a76.png#750__71)
![【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_1](https://i.gyazo.com/e99cb5afd6fa5aed53ad8a7501ddea10.png#750__60)
![【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_2](https://i.gyazo.com/6fb08ab092885700076817dc29893767.png#750__66)
![【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_3](https://i.gyazo.com/4586235e96998e2891db4dbc2f3cd5fb.png#750__61)
![【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_4](https://i.gyazo.com/3b7d41311cbb1039606da8bb513d0479.png#750__62)
![【保存版】もう忘れないObjective-Cのインスタンスメソッド文法_5](https://i.gyazo.com/f438e8ec6c39463c9f4af948b68703ef.png#750__62)
第3引数以降は第二引数のルールにしたがって
記述が増えていくだけです。
ここからはオオバの主観ですが、
忘れやすいポイントをまとめています。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
7つのインスタンスメソッドの定義で忘れやすい文法まとめ
- インスタンスメソッドは
-
で始める - 戻り値の型には
()
が必要 - メソッド名 : `printExistFile
- メソッド名の後に
:
が必要 - 引数の型は
()
カッコで囲む - 第二引数からラベルが登場
- 第二引数のラベルの後には
:
が必要
あくまで主観ですが、
よく忘れます。
4つのインスタンスメソッド呼び出し忘れやすい文法まとめ
- メソッドは
[ ]
で囲む - 自分(
self
)が呼び出し元でも必ず記述が必要 - 引数の手前に
:
が必要 - 第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を実行するための
橋渡しとして使ったりもします。
ときどきでも使う言語の思い出しコストを
最小限にするために本記事を書きました。
ぜひ活用していただければと思います。
![](https://i.gyazo.com/87b096ac54d119b606a489c4ccd80aaf.jpg)
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいObjective-Cライフをお過ごしください。