Я реализую приложение iOS с шаблоном проектирования MVC.MVC: Прохождение методов в разных классах
Приложение имеет 5 интерфейсов и я продолжил таким образом:
- AppDelegate (CONTROLLER);
- WebServiceModel (MODEL);
- 5 интерфейсов, которые представляют 5 видов приложения (VIEWS).
В модели я применил метод, который отправляет сообщения веб-службе для запроса данных. В соответствии с MVC контроллер должен получать данные от Модели и отправлять их в Вид, поэтому в Контроллере я реализовал метод, который вызывает метод Модели. В представлении я создаю экземпляр объекта 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
Когда приложение запускается, в «Все выходные» вы видите только «ОН!». и «ОК!», но нет «ДА!».
Потому что метод «функции» модели не называется?
Спасибо тем, кто отвечает мне!
Большое спасибо, вы правы, но я бы понял, если я применил хорошо шаблон проектирования MVC: Я сделал 5 интерфейсов, соответствующих 5 классов ViewController. Я хорошо, или я создал один вид, и мне нужно настроить интерфейсы в Interface Builder? – ginosal
В этом случае вы можете создать свой слой вида столько, сколько хотите. Дело в том, что модельный слой является отдельным, и, следовательно, объект модели должен управляться независимо от уровня представления. –
Хорошо, еще раз спасибо – ginosal