2016-04-04 13 views
0

ごめんなさい(私は思いますが)ごめんなさい申し訳ありませんが、私はiosとobjective-cのプログラミングでは非常に小さな経験を持っていますので、私は自分でひとつの方法私のすべてのビューコントローラ(私はすべての私のクラスでこのメソッドを貼り付けることによってコードを掛けたくありません)のために働くでしょう。これは、バックグラウンドスレッドでサーバーに接続し、そこからデータを受け取る単純な方法です。このメソッドは、コードを掛けずにすべてのView Controllerで動作させる方法を理解するだけで書かれています。全視聴者のリスナー

+0

すべてのビューコントローラで使用される独自のコンポーネント(クラスなど)に目的のメソッドを配置できます。 OR:独自のビューコントローラを作成し、そこにメソッドを配置し、このベースビューコントローラをほかのすべてのビューコントローラの基本クラスとして使用できます。 – Alex

答えて

2

あなたは、いくつかの選択肢があります。

  • UIViewControllerのサブクラスを作成して、代わりにUIViewController
  • のカスタムクラスのすべてのViewControllersのサブクラスを定義する方法
  • の実装とUIViewControllerのカテゴリを作成します。メソッドをクラスメソッドとして宣言したクラスを作成します。

例:
ConnectionManager.h

+ (NSArray *) getData; 

ConnectionManager.m

+ (NSArray *) getData{ 
    //method implementation 
} 

そして、あなたはこのようなあなたのビューコントローラからそれを呼び出すことができます。

[ConnectionManager getData] 

この最後のオプションのバリアントが作成することですsingletonオブジェクトです。

+0

だから、それはOOPを使うことによってのみ行うことができ、 "appが実行されているときに、メソッドが動作しています"ということをobjective-cで行うメカニズムはありません。 – Ookey

+0

「アプリが実行されているときに、メソッドは機能しています」という意味はどうですか? – lorenzoliveto

+0

アプリケーションが起動し、5分ごとに(たとえば)サーバーに接続します(私の場合)。 – Ookey

0

「すべてのView Controllerでこれを行うのは非常に奇妙です。データを取得するためにネットワークに接続することは、それぞれのビューコントローラに固有のようです。

とにかく、このようなことをあるカテゴリで行うことができます。これは、任意のビューコントローラにあなたがすることができることを意味し

@interface UIViewController (MyDataConnection) 

- (void)thisIsYourMethodHere; 

@end 

と...

@implemnetation UIViewController (MyDataConnection) 

- (void)thisIsYourMethodHere { 
    // do your networking stuff here. 
} 

@end 

...

[self thisIsYouMethodHere]; 

そしてそれは、カテゴリ内のコードを実行します。

関連する問題