タイトルまんまです。
AppDelegate を呼び出す時に、毎回長々と呼び出しコードを書かずに済ませる方法です。
といっても、内容的にはこちらの記事を丸々真似させて頂いているだけなのですが。
iOS AppDelegate(アプリケーションデリゲート)の作成を簡単にする | HAPPY*TRAP
通常のAppDelegate呼び出し
通常のAppDelegate呼び出しはこんな感じだと思います。
AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplicationDelegate] delegate]; [appDelegate hoge];
正直、毎回AppDelegate*…とやるのは面倒臭いです。
こうする(prefix.pch ファイルにマクロを登録)
上記の手間を省くため、xxx_prefix.pch ファイルにマクロを登録します。
プロジェクト内のSupporting Files グループの中に”◯◯_prefix.pch”という名前のファイルがあるので、これに編集していきましょう。
ちなみに「マクロて何?」という方もいらっしゃるかもしれませんので乱暴に説明すると、プログラムコードの短縮ダイヤルみたいなものです。
1.AppDelegate.h の読み込み
xxx_prefix.pch ファイルの冒頭を以下の様にして、AppDelegate.h を読み込みます。
#import <Availability.h> #import "AppDelegate.h"
2.末尾にAppDelegate呼び出しマクロを登録
xxx_prefix.pch ファイルの末尾に以下の1文を追加して、AppDelegateの呼び出しマクロを登録します。
#define APP_DELEGATE (AppDelegate*)[[UIApplication sharedApplication] delegate]
見るとわかるかと思いますが、#define APP_DELEGATE 以降は通常のAppDelegate呼び出しと同様の内容です。
これは”APP_DELEGATE” という名前に “(AppDelegate*)[[UIApplication sharedApplication] delegate]” というAppDelegate の呼び出しコードを登録したことを示します。
3.マクロで呼び出すAppDelegate
せっかく登録したマクロなので、これを使って冒頭と同じ様にAppDelegate を呼び出してみましょう。
[APP_DELEGATE hoge];
これだけです。
とても短くなりましたね。
ピンバック: [XCode&iPhone]親子関係じゃないView間で値の受け渡しをする方法 | Exception Code.