我正在使用 MVC 设计模式实现应用程序 iOS。
该应用程序有5个界面,我以这种方式进行:
- AppDelegate(控制器);
- 网络服务模型(模型);
- 代表应用程序的 5 个视图 (VIEWS) 的 5 个界面。
在模型中,我实现了一种向 Web 服务发送消息以请求数据的方法。根据MVC,Controller必须从Model接收数据并发送给View,所以在Controller中我实现了一个调用Model的方法的方法。在视图中,我实例化了一个对象 Controller 并调用 Controller 方法。当应用程序启动时,Xcode 只启动 AppDelegate (Controller) 方法的命令,而不读取对 Model 方法的调用。
如果推理有误,我深表歉意。总之:
// AppDelegate.h
#import "WebServiceModel.h"
@interface AppDelegate: UIResponder <UIApplicationDelegate> {
WebServiceModel *model;
}
@property (retain, nonatomic) WebServiceModel *model;
- (void) func;
_________________
// AppDelegate.m
@implementation AppDelegate
@syntesize model;
- (void) func {
NSLog(@"OK!");
[model function];
}
@end
_________________
// WebServiceModel.h
#import "AppDelegate.h"
@interface WebServiceModel: NSObject <NSXMLParserDelegate> {
AppDelegate *controller;
}
- (void) function;
_________________
// WebServiceModel.m
@implementation WebServiceModel
- (void) function {
NSLog(@"YES!");
//other instructions
}
@end
_________________
// View Controller.h
#import "AppDelegate.h"
@interface ViewController: UIViewController {
AppDelegate *controller;
}
_________________
// ViewController.m
@implementation ViewController
- (void) viewDidLoad {
NSLog(@"OH!");
controller = (AppDelegate *) [[UIApplication sharedApplication] delegate];
[controller func];
}
@end
当应用程序启动时,在“所有输出”中您只会看到“哦!” 和“OK!”,但没有“YES!”。
因为没有调用模型的方法“函数”?
感谢那些回答我的人!