0

このサイトで同様の質問を見つけましたが、明確かつ基本的な方法で問題に対処するものはありません.

ReadViewController.h および ReadViewController.m ファイルと、ChooseViewController.h および ChooseViewController.m ファイルがあります。

どちらも現在 ReadViewController.m ファイルにある getProperties メソッドにアクセスする必要があります。

- (void) getProperties {
    NSLog(@"Start getProperties");
//SOME CODE
    NSLog(@"End getProperties");
}

理想的には、これは GeneralModel.m と呼ばれる 3 番目のファイルにあります。

このメソッドを呼び出せるようにするために、コントローラ ファイルに必要なコードの基本的な例を教えてください。

4

3 に答える 3

8

このメソッドがアプリケーションの多くの場所で使用される場合、この場合はグローバル メソッドとして扱い、このメソッドを別のクラスに配置しようとすると、NSObjectクラスのタイプになる可能性があります。

  @interface Utility :NSobject

  - (void) getProperties
  @end

 @implementation Utility

 - (void) getProperties {
    NSLog(@"Start getProperties");
   //SOME CODE
    NSLog(@"End getProperties");
 }
 @end

ここでそのメソッドが必要なときはいつでも、Utilityクラスのオブジェクトを作成するだけで、必要な場所に簡単にアクセスできます.like

ReadViewControllerこの方法でオブジェクトを作成してアクセスするだけで

  Utility * obje = [Utility  alloc]init];

  [obje getProperties  ];

そして、アプリのアーキテクチャについて話しているだけの場合は、DB 呼び出しを行うため、サーバーへの呼び出しを要求するためにMVC保持する必要があるとします。クラス コード Likeを個別にmodel(NSObject Type)Class保持し、アプリのロジックを制御するために必要なコードのみを内部に配置します。ViewUIViewController class

MVCこれは、アーキテクチャを説明するリンクです。

お分かりいただけたかと思います。

于 2012-11-13T12:32:31.347 に答える
0

このメソッドがアプリケーションの多くの場所で使用される場合、この場合はグローバル メソッドとして扱い、このメソッドを別のクラスに配置しようとすると、NSObject クラスのタイプになる可能性があります。

@interface Utility :NSobject
- (void) getProperties
@end

@implementation Utility

- (void) getProperties {
    NSLog(@"Start getProperties");
    //SOME CODE
    NSLog(@"End getProperties");
}
@end

ここでそのメソッドが必要なときはいつでも、ユーティリティクラスのオブジェクトを作成するだけで、必要な場所に簡単にアクセスできます.like

ReadViewController では、この方法でオブジェクトとアクセスを作成するだけです

Utility * obje = [Utility  alloc]init];
[obje getProperties  ];
于 2014-04-09T10:41:38.000 に答える
0

私が実装したソリューションは次のようになります。iOS-Developerの回答を受け入れますが、それは私を正しい軌道に乗せたからです。

//*********************
//ReadViewController.h
#import <UIKit/UIKit.h>
#import "GeneralModel.h"

@interface ReadViewController : UIViewController {
    GeneralModel *generalModel;
}

@end
//*********************


//*********************
//ReadViewController.m
#import "ReadViewController.h"

@interface ReadViewController ()

@end

@implementation ReadViewController

NSArray *allProperties;

- (void) getProperties {
    generalModel = [[GeneralModel alloc] init];
    allProperties = [generalModel getProperties];
    NSLog(@"ALLPROPERTIES: %@", allProperties);
    [generalModel release];
}
//**********************


//**********************
//GeneralModel.h
#import <Foundation/Foundation.h>
#import "sqlite3.h"

@interface GeneralModel : NSObject {

}
-(NSArray *) getProperties;
@end
//**********************


//**********************
//GeneralModel.m
#import "GeneralModel.h"

@implementation GeneralModel

- (NSArray *) getProperties {
    NSLog(@"Start getProperties");
    NSArray *someProperties;
//Some nice code goes here for getting a lot of nice properties from somewhere else.
    return someProperties
    NSLog(@"End getProperties");
}
//***********************
于 2012-11-14T10:19:48.277 に答える