我在这个网站上发现了类似的问题,但没有找到以明确和基本的方式解决问题的问题。
我的ReadViewController.h和ReadViewController.m文件以及ChooseViewController.h和ChooseViewController.m文件。
他们都需要访问当前在ReadViewController.m文件中的getProperties方法。
- (void) getProperties {
NSLog(@"Start getProperties");
//SOME CODE
NSLog(@"End getProperties");
}
现在理想情况下,这将位于名为GeneralModel.m
的第三个文件中请给我一个基本示例,说明控制器文件中需要哪些代码才能调用此方法。
答案 0 :(得分:8)
如果此方法将在Application中的许多地方使用,那么在这种情况下,您应将其视为Global方法,并尝试将此方法放在单独的类中,可能是NSObject
类的类型。
@interface Utility :NSobject
- (void) getProperties
@end
@implementation Utility
- (void) getProperties {
NSLog(@"Start getProperties");
//SOME CODE
NSLog(@"End getProperties");
}
@end
此处每当您需要这些方法时,您只需要创建Utility
类的对象,可以在任何需要的地方轻松访问它。比如
ReadViewController
中的只需以这种方式创建对象和访问
Utility * obje = [Utility alloc]init];
[obje getProperties ];
如果您只是谈论应用程序架构,那么有一件事,假设您在该案例中跟随MVC
,您应该保留model(NSObject Type)Class
进行一些数据库调用,请求调用服务器。保留View
类代码分别与UIView
类似,并将代码放在Controller class
内仅控制应用逻辑所需的代码。
Here is the Link which explain The MVC
Architecture.
我希望你能清楚。
答案 1 :(得分: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");
}
//***********************
答案 2 :(得分:0)
如果此方法将在Application中的许多地方使用,那么在这种情况下你应该将它视为Global方法并尝试将此方法放在单独的类中,可能是NSObject类的类型。
@interface Utility :NSobject
- (void) getProperties
@end
@implementation Utility
- (void) getProperties {
NSLog(@"Start getProperties");
//SOME CODE
NSLog(@"End getProperties");
}
@end
此处只要您需要这些方法,您只需要创建实用类对象即可在任何需要的地方轻松访问它。如
ReadViewController中的只是以这种方式创建对象和访问
Utility * obje = [Utility alloc]init];
[obje getProperties ];