匿名質問者

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


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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/08/03 17:43:31

ベストアンサー

匿名回答1号 No.1

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

他1件のコメントを見る
匿名回答1号

そうですね。

ParentViewControllerとChildViewControllerの親クラスのカテゴリを作成すればいいです。例えば、2つの親クラスUIViewControllerにカテゴリUIViewController+hogeを作成すれば、必要なときにUIViewController+hoge.hをimportすればいいです。

UIViewController+hoge.h

#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

#import "UIViewController+hoge.h"
@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *str =  [self getHogeString:@"test"];
 }
2014/08/01 21:59:25
匿名質問者

ありがとうございます。

サンプルコードまでご提示非常にたすかります。

まずはお教えいただいた内容でいろいろと試してみたいと思います。

丁寧にお教えいただきありがとうございました。

2014/08/03 17:43:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません