文档介绍:iOS APP 架构漫谈
最近看了一些有关 server 的东西,一些很简单的东西,不外乎是一些文档规范,另外结合最近
看的 wwdc 的一些 video,觉得对软件架构(software architecture)认识又清楚了一些,这里记录
下来。
software architecture 听上去是一个很大的概念,实际上也包括很多东西,里面的争议也很多。
在我看来软件架构最好放在小的场景中理解。
问题 1
我们有 2 个页面。
A:主页面
B:详情页面
2 个页面分别显示一个数字,这个数字应该相同。详情会修改这个数字,这里我们发现,详情页
面和主页面数字不一样。
数据不一致
问题 1 解决方法 A
这里首先的感觉就是,详情页面返回,主页面数据没有刷新,导致数据不一致。 那么 Fix 这个
Bug 的方法,就是在主页面出现的时候刷新界面
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
= [[CUDataDAO selectData].data stringValue];
}
现在来看,还不错。但是,我们调用 selectData 的次数则变得非常非常多。数据不是经常变化
的。
问题 1 解决方法 B
我们发现既然数据的改变是在页面 B 进行的,那么页面 B 修改这个数据的时候,应该把数据变化”
通知”给页面 A,那么我们写了一个 Delegate
***@protocol CUDetailViewControllerDelegate <NSObject>
- (void)detailVC:(CUDetailViewController *)vc dataChanged:(NSNumber *)data;
***@end
在页面 B 修改数据之后,通过 delegate 通知给页面 A。
- (IBAction)changeButtonClicked:(id)sender {
int value = arc4random() % 100;
[CUDataDAO setData:value];
= [@(value) stringValue];
if ([s