iOS 路由总结大全

iOS 路由总结大全,第1张

iOS路由目前业内流行的有两大分类:1、基于URL或protocol的注册调度型路由 2、runtime调度型路由

其中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的文章,不过代码写得不是很好,可以参考一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7996909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存