ViewController 代码拆分实践

2015-09-02 07:46:50 +08:00
 cralison

日常里的异常,人生至乐!

如果你才刚刚接触 iOS 开发,可以先看看我写的另一篇文章《从零开始学 iOS 开发的 15 条建议》 http://www.jianshu.com/p/8472ba0f2bb6

首先,创建一个 Single View Application 。

接着,找来一个数据 API ,这里以 V2EX 的公开 API 为例:
https://www.v2ex.com/p/7v9TEc53

我们只拿其中一个 API:首页右侧的 10 大每天的内容。
https://www.v2ex.com/api/topics/hot.json

AppDelegate.m
```
@implementation AppDelegate

@property (nonatomic, strong ) NSMutableData *receiveData;
@property (nonatomic, strong ) NSArray *hotList;

@property (nonatomic, strong ) UITableView *tableView;
@end

@implementation ViewController

@property (nonatomic, strong ) NSDictionary *detailData;
@end

DetailViewController.m

@implementation DetailViewController

-(void )viewDidLoad
{
self.title = self.detailData[@"title"];
}

@end
```
代码运行效果:

下面,我们开始拆。

首先,创建接口 Interface 。

然后,创建相应的类。

把代码移到相应的类里:
ViewController.h
```
@interface ViewController : UIViewController

@property (nonatomic, weak ) id<ViewInterface> viewModel;
@property (nonatomic, weak ) id<APIInterface> apiHandle;
@property (nonatomic, weak ) id<StoreInterface> storeHandle;
@property (nonatomic, weak ) id<RouteInterface> routeHandle;
@end

ViewController.m

@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>

@property (nonatomic, strong ) NSMutableData *receiveData;
@property (nonatomic, strong ) NSArray *hotList;

@property (nonatomic, strong ) UITableView *tableView;
@end

@implementation ViewController

-(void )initUI
{
self.title = @"最热 10 条";
CGRect frame = [[UIScreen mainScreen]bounds];
self.tableView = [[UITableView alloc]initWithFrame:frame];
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.view addSubview:self.tableView];
}

ViewModel.m
```
@implementation ViewModel

@property (nonatomic, strong ) NSMutableData *receiveData;
@end

@implementation APIHandle

@implementation RouteHandle

@interface AppDelegate ()
@property (nonatomic, strong ) ViewModel *viewModel;
@property (nonatomic, strong ) APIHandle *apiHandle;
@property (nonatomic, strong ) StoreHandle *storeHandle;
@property (nonatomic, strong ) RouteHandle *routeHandle;
@end

@implementation AppDelegate

后记(下面以聊家常为主,没时间没兴趣的朋友请直接忽略):

在日常中积累越多的人,生活越感无聊,虽然在外人看来顺风顺水。
在异常中辛苦存活的人,生活快感无比,虽然在外人看来非常凶险。
人活一辈子,究竟为了什么呢?:)终究难逃一死啊。或快又或慢。
这是一个非常有意思的问题。有意思的根本在于这一个问题的残酷。
因为,追问之下,多数人都只能回答:我一直不知道!!!!!!!
不要那么笃定啊!不要逃避不确定性啊!人生摇摆中存活才会有趣!

我一直以为,我需要异常来让自己觉得自己是生物而不是死物。
但,真正的异常在哪里呢?最大的异常在哪里呢?
最大的异常,在日常里。
让日常变得异常。
日常非常美丽。整整齐齐,稳稳当当。
如果,日常可以异化,异化成另一种整整齐齐、稳稳当当,那就太好玩了。
如果,可以让这个世界异化成另一种日常。让人们习惯异化,就太好玩了。

寻找日常里的可异化的点,用尽一生去把它异化成日常,那就会太好玩了。

这次找到了一个点:)
递减:)

长久以来,我们被教导要去追求多样性,要丰富。
这是最大的陷阱。
因为,我们会被个体的多样性削弱群体的多样性。
相反,如果我们能回归个人的单一性却可以创造出最广泛的群体多样性。

所以,我们要放弃扩张,而是尽自己一切的努力去收缩。
把触角收缩到以自我为中心的极致小的那个点。
那个,除了自己,任何人都不可能有的点。
当,我们都能找到自己的点,这个世界就有 70 个点。
相反,看看我们身边的这个世界,不停地扩张、积累,最好大家都在吃一样的食物,穿一样的衣服,看一样的娱乐,过一样的人生。
看似极大丰富,实则是极尽无聊。

不外寻,只自问。
通过永不停止的递减,以退为进,找到自己那唯一的点。
不要再被这个世界繁杂所拖累了。

回归本心,重新出发。

深挖日常!向日常深处进军!

日常深处有无尽的独一异常!

1832 次点击
所在节点    iDev
2 条回复
kobe1941
2015-09-02 09:58:48 +08:00
这个发自己博客就好了吧,代码贴在这里,阅读体验相当不好。。。。
wuyuchenshishabi
2015-09-02 10:40:22 +08:00
So what are you talking about?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/217734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX