Viper实施中的IOS内存管理(ARC)

关于ARC的文章更多,其中有很多很好的例子。 我将保持简单。 该图中显示的示例演示了ARC的工作原理。

持有参考
简单来说,您创建的每个对象都有一个引用。 如果存在您可以访问并指向一个对象的变量或常量,则基本上意味着该变量将保留该引用。

参考类型
有3种参考类型:
–强
–弱
–无人

请记住,ARC仅跟踪引用。

那么ARC到底要跟踪什么? 好吧,我很高兴你问。 如上图所示,当其他变量持有对Car()的引用时,ARC会继续增加引用计数,而当变量设置为nil时,ARC会递减引用计数。 同样,当该引用计数为0时,ARC会为您删除分配的对象。

太好了,实际上,这是一个很棒的解决方案,我决定提供几行以纪念这个惊人的创作。

毒蛇

不,不是这个……

如果您熟悉其他架构,例如MVCMVPMVVM,这将更容易理解。
体系结构的主要思想是将代码逻辑分离到不同的模块中,以便使其他开发人员更容易理解代码,并使代码更具可测试性。 选择使用哪种方法实际上取决于项目规模和团队协议。

涉及大型项目时, MV-X系列的体系结构存在一个常见问题。 而这个问题是大规模的视频监控器,演示者或视图模型。 这基本上意味着一个模块中的代码太多,以后可能会造成混乱。 这就是VIPER出现的原因之一。

VIPER通过进一步拆分代码来解决MV-X问题。 在5个主要模块中:视图,交互器,演示者,实体,路由器。