人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

iOSアプリの開発をしているのですが、ソース内の関数をクラスを作成せずに単純に別なファイルにまとめるにはどうすればよいのでしょうか。

単純な処理ですが、各ViewControllerで利用される処理があり、それをPHPのrequireのような事を実現したいと思っています。
AppDelegateにひたすら各のは違うと理解しているのですが、他に簡単に実現する方法はないでしょうか。


●質問者: 匿名質問者
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

カテゴリを使えばいいんじゃないかな
http://wisdom.sakura.ne.jp/programming/objc/objc15.html


匿名質問者さんのコメント
ご回答ありがとうございます。 カテゴリというものは初めてしました。 ネット上の情報をいろいろ見て回ったのですが、これですと既存のクラスの拡張を行うような形になる為、結果的にクラスを作るのとかわらないのではないでしょうか。 つまりカテゴリを使う場合、ベースとなるクラスが必要になるという事です。 例えば、ParentViewController.mとChildViewController.mの二つ画面を持つ場合、両方から利用するメソッドを実装する場合のようなケースです。 ちょっと変なたとえですが、両方の画面で、ある特定の計算処理を行うメソッドがあったとして、それを個別に記載するとメンテナンスもし辛くなるので、外部ファイルに定義して利用したいよなケースです。 この場合、ViewControllerをベースのクラスとしたカテゴリを作成し使えばよいということでしょうか。

匿名回答1号さんのコメント
そうですね。 ParentViewControllerとChildViewControllerの親クラスのカテゴリを作成すればいいです。例えば、2つの親クラスUIViewControllerにカテゴリUIViewController+hogeを作成すれば、必要なときにUIViewController+hoge.hをimportすればいいです。 UIViewController+hoge.h >|ObjC| #import <UIKit/UIKit.h> @interface UIViewController (hoge) - (NSString*)getHogeString:(NSString*)string; @end <|| UIViewController+hoge.m >|ObjC| #import "UIViewController+hoge.h" @implementation UIViewController (hoge) - (NSString*)getHogeString:(NSString*)string { return [NSString stringWithFormat:@"hoge:%@", string]; } @end ||< ViewController.m >|ObjC| #import "UIViewController+hoge.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSString *str = [self getHogeString:@"test"]; } ||<

匿名質問者さんのコメント
ありがとうございます。 サンプルコードまでご提示非常にたすかります。 まずはお教えいただいた内容でいろいろと試してみたいと思います。 丁寧にお教えいただきありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ