標籤:
1.準備工作
由於工程越來越大,裡面的檔案也越來越多。很多時候merge代碼的時候工程檔案起了衝突之後,若 .xcodeproj檔案衝突 開啟之後很難以修改。
故想到了模組化程式,於是乎就去網上找資料
蘑菇街 安居客 Small (裡面都有demo,安居客的看後之後簡單一點)
大致差不多就是URL的格式 scheme://host/path?query
1.啟動的時候註冊相應的url host為相應的模組名
2.需要的時候直接使用路由調用url的方法
2.CTMediator概述(現未產生子工程,所以是以檔案夾的方式代替工程)
2.1 分為三個部分
殼工程:整個程式的入口
主工程:lib庫(網路工具,相簿工具,檔案服務,路由)
子工程:即模組工程
2.2 CTMediator工作原理
1. + (instancetype)sharedInstance;
路由單例對象
2. - (id)performActionWithUrl:(NSURL *)url completion:(void(^)(NSDictionary *info))completion;
調用之後可返回一個控制器對象,傳入url的格式如 hgl://message/chat?key=value (message:自模組名,chat:具體要指向的控制器)
3. - (id)performTarget:(NSString *)targetName action:(NSString *)actionName params:(NSDictionary *)params;
該方法比方法2更加快捷,可以讓開發人員更加快速的理解 [self performTarget:@"message" action:@"chat" params:@{@"key":@"value"}];
4.所有模組都必須有一個路由接收器(即入口)
4.1接收器類名 Target_模組名 (Target 也可以換成你喜歡的單詞 定義好之後告訴其他人就行,別人也好按照這個規範來)
4.2接收器裡面的方法名 - (UIViewController *)Action_xx:(NSDictionary *)param; (xx 代表某個控制器)
iOS 組件化漫談