こんにちは、Unityエンジニアのオオバです。
普段書かないから
Objective-Cの文法って忘れちゃうんですよ。
特にC#やJavaScriptに書き慣れていると、
文法の文化が違いすぎて間違えるんですよね。
- メソッドを
[]
で囲む - 戻り型に
()
を付ける
↑といった超基本的なことを忘れてしまいます。
本記事ではObjective-Cの
インスタンスメソッド文法を
速攻で思い出せるように
完全保存版としてまとめました。
どうぞ思い出すためにご活用ください
Objective-Cインスタンスメソッド図解
第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を実行するための
橋渡しとして使ったりもします。
ときどきでも使う言語の思い出しコストを
最小限にするために本記事を書きました。
ぜひ活用していただければと思います。
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいObjective-Cライフをお過ごしください。