其中protocol类型的路由查的资料中目前只找到了一个MGJRouter,就是蘑菇街路由,但是这个主库已经被删了,所以这个类型的就不再讨论了。
下面为大家整理了一下这两种类型路由各自的原理、优缺点、常见的第三方库等,参见下表:
下面我再针对表中常见的第三方库的详细使用方法进行介绍:
5.5k Star
1.1.1.1:
在BaseViewController和BaseTabBarController中添加设置参数方法,供子方法继承(统一处理)
1.1.1.2:添加接收到路由后的处理 *** 作(统一处理)
一般放在AppDelegate中的didFinishLaunchingWithOptions方法中进行配置;需要集中管理的话得自己去写工具类统一调度
1.1.1.3:页面处理传参
HnxxtNewsParentViewController里继承方法处理传参(页面各自处理)
1.1.2.1:跳转到页面,无参数(页面各自处理)
1.1.2.2:跳转到页面,有参数(页面各自处理)
1.1.2.2:跳转到页面,有参数,指定present方式(页面各自处理)
在AppDelegate中的 openURL 方法统一处理
JLRoutes的封装
参考: iOS 组件化-路由解耦思想 JLRoutes 实战篇(一)App内控制器跳转
GitHub工程
1.添加VC配置到路由表
在AppDelegate中的 openURL 方法统一处理
1.8k Star
1.3.1.1 在AppDelegate中的didFinishLaunchingWithOptions方法中进行路由注册及导航栏设置;需要集中管理的话得自己去写工具类统一调度
1.3.1.2 在目标UIViewController中实现方法:initWithRouterParams: ,也就是如果用这个库,工程里的vc都得实现这个方法
在需要跳转的地方调用:
查看源码是没有提供处理外部应用打开当前app的相关路由方法,只提供了一个:openExternal:(NSString *)url 方法,该方法只是用来打开app外部应用的方法。所以对于外部打开app处理还是同上述一致:
在AppDelegate中的 openURL 方法统一处理
1.6k Star
1.4.1.1 在AppDelegate的didFinishLaunchingWithOptions方法中进行路由注册;统一管理也是需要自己定义工具类
在需要跳转的地方调用
查看源码也是没有提供处理外部应用打开当前app的相关路由方法,所以对于外部打开app处理还是同上述一致:
在AppDelegate中的 openURL 方法统一处理
8 star
参考HHRouter实现的路由,优化了传参方式,不再通过url传参,而是通过方法传参
在AppDelegate的didFinishLaunchingWithOptions方法中进行路由注册:
查看源码也是没有提供处理外部应用打开当前app的相关路由方法,所以对于外部打开app处理还是同上述一致:
在AppDelegate中的 openURL 方法统一处理
3.8k Star
假如路由目标vc叫 HnxxtNewsParentViewController:
1、新建Target_Hnxxt类,在这个类里去写方法提供HnxxtNewsParentViewController的实例
2、创建 CTMediator 的 Category,比如叫CTMediator+Hnxxt,在这个类里提供对外调用的路由方法
这个库也不需要初始化 *** 作;另外这里在Target_Hnxxt和CTMediator+Hnxxt中都对路由进行了统一管理;Target_Hnxxt使CTMediator和具体的路由目标类进行了解耦,详细示例如下:
在AppDelegate中的 openURL 方法进行处理,思路也是将远程的url转换为本地的跳转方式
以上就是对目前iOS 比较流行的路由库的笼统介绍,期间涉及到的第三方库的使用细节,还需要大家在用到的时候再仔细对照官方文档和demo,也可以参考下面这些我总结的相关技术博客,比官方文档更贴合实际使用:
参考资料:
iOS 组件化 —— 路由设计思路分析
iOS 组件化-路由解耦思想 JLRoutes 实战篇(一)App内控制器跳转
routable-ios源码解析
iOS开发 — HHRouter路由数据传递开发分享
CTMediator: iOS应用架构谈 组件化方案
CTMediator:在现有工程中实施基于CTMediator的组件化方案
CTMediator 的初体验
10.18.0.X类A IP掩码是255.0.0.0。设置为192.168.0.X,是C类的IP地址掩码为255.255.255.0
跨类IP地址的访问,专业的网关,路由表路由或服务器设置IP转发。
工作站需要访问的数据库设置为192.168.0.X段多分配一个10.18.0.X的网段的IP地址,每台机器上增加一个TCP / IP协议的计算机有两个IP地址,以便它可以访问192.168.0.X段和10.18.0.X的网段。此方法的缺点是占用资源的IP地址,并且每台机器必须设置。
如果路由带路由表中,您可以添加以下协议
192.168.0.0 255.255.255.255 10.18.0.1
10.18.0.0 255.255.255.255 192.168.0.1
你在cmd下输入tracert试下功能,之后google一下ICMP协议的的资料
一般来说,先用winsock创建一个流套接字,设置协议为IPPROTO_ICMP,之后使用sendto和recvfrom收发数据包就行了
我空间里有篇ping的文章,不过代码写得不是很好,可以参考一下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)