将@protocol 添加到 Model 类并在 Controller 中实现它是一种很好的模式吗?
这是我用来在我的模型数据更改时发送消息以重新加载 UITableView 的代码,它是对象 c 编码的好方法吗?:
我的模型.h
@protocol myModelDelegate
{
(void) refreshTableView:(id) sender;
}
@end
@interface MyModel
{
@property (nonatomic,strong) (NSArray *) myData;
@property (nonatomic,weak) (id) <myModelDelegate> delegate;
}
@end
我的模型.m
@implementation MyModel
@synthesize myData=_myData;
- (NSArray*) myData {
if(!_myData) {
_myData= [[NSArray alloc] init];
}
return _myData;
}
- (void) setMyData: (NSArray*) myData
{
if (_myData != myData) {
_myData=myData;
[delegate refreshTableView:self];
}
}
@end
我的数据控制器.h
...
@interface MyDataController: UITableViewController <myModelDelegate>
...
我的数据控制器.m
@interface MyDataController()
@property (nonatomic,strong) (MyModel *) model;
@end
@implementation MyDataController
@synthesize model=_model;
-(MyModel *) model
{
if(!_model)
{
_model=[[MyModel alloc]init];
model.delegate=self;
}
return _model;
}
...
- (void) refreshTableView: (id) sender
{
[TableView reloadData];
}
...
@end