Saya sudah lama bekerja dengan MVC tetapi tidak yakin apakah saya menggunakan pola ini dengan benar di iOS.
Ini adalah pemahaman saya dan kode sumber yang saya gunakan untuk divisi pada tampilan model dan pengontrol.
Keterangan:
Model (misalnya - kelas MyModel) Model ini adalah data saya. Saya menggunakan model untuk perhitungan yang ditentukan, akuisisi data dari Internet dan selanjutnya saya memberi tahu pengontrol tentang perubahan model misalnya melalui NSNotificationCenter.
Pengontrol (misalnya - kelas MyController) Pengontrol dapat langsung menghubungi permintaan data modelnya, dan langsung menuju ke tampilan yang dilihat.
Lihat (misalnya - kelas MyView) Lihat - menampilkan dan mengumpulkan acara dari pengguna. Lihat dapat berinteraksi dengan pengontrol melalui tindakan target dan delegasi.
Kode:
kelas MyModel:NSObject
.h ... (some header code)
.m
Initialization method...
// method for get data from internet
-(NSData *)my_getDataFromInternet:(NSURL *)url{
NSData *data=[NSData dataWithContentsOfURL:url];
return data;
}
kelas MyController:UIVIewController
#import "MyView.h"
.h
MyView * my_view;
#import "MyData.h"
.m
Initialization method...
- (void)init{
my_view = [[MyView alloc]init];
my_view.my_target = self;
self.view = my_view;
}
-(void)mycontrolleraction{
MyData * my_data = ...
[my_data my_getDataFromInternet:some_url_image];
my_view.my_image = [UIImage imageWithData:self.my_data];
}
kelas MyView:UIView
.h
UIImage * my_image;
property(nonatomic, assign)id my_target;
.m
Initialization method...
- (void)initWithFrame{
UIButton * my_button = ...
[button addTarget:my_target ....
my_image = ...
[self addSubview:my_image];
[self addSubview:my_button];
}
Saya menambahkan target ke tombol saya - target_saya (target_saya - ini adalah Kontroler Saya). Ketika pengguna mengetuk tombol saya - metode dijalankan di MyController dan meminta data dari kelas MyData saya.
Saya ingin tahu di mana kesalahan saya dalam menggunakan metode ini di MVC.