使用扩展来组织您的UIViewController

什么是扩展?

扩展为现有的类,结构,枚举或协议类型添加了新功能。 这包括扩展您无法访问原始源代码的类型的能力(称为追溯建模 )。 扩展与Objective-C中的类别相似。 (与Objective-C类别不同,Swift扩展没有名称。)

以正确的方式使用扩展可以极大地改善代码组织。 我将展示如何改善UIViewController类中的代码组织,并保证您将一直使用这种方法。 开始吧!

UIViewController +扩展

UIViewController类可以包含许多代码,这可能导致文件大而混乱。 这就是为什么我们需要通过代码分成单独的扩展块来正确组织代码。 您可以在文件中添加无限数量的扩展名,但我将向您展示一些使用它的示例。

  注意:我在该故事的末尾添加了一个文件(由于太长而不得不将其放在此处),其中包含一个简单的代码演示文稿,以供您阅读 
  • 类块–在此我声明变量( fileprivatepublic ),出口,覆盖方法,生命周期方法( viewDidLoad()viewWillAppear()等)以及内部方法。
  • 私人分机–这是 首先 最常见 我在每个控制器中创建的扩展。 它包含所有需要保密的方法,动作,事件。 因此,无需在每个方法之前添加private关键字,Swift即可让您将所有内容保持在同一块内。
  • 协议扩展 –如果您需要在控制器中实现委托方法,这是最好的方法。 假设您需要在控制器内部实现UICollectionView。 这意味着您将需要UICollectionViewDelegate,UICollectionViewDataSource和UICollectionViewDelegateFlowLayout扩展。 只需为每个协议创建一个扩展,然后添加所需的方法(请参见下面的Gist示例)。
  • MARK:// 是一个简单的指令,可以帮助我们更好地组织实现代码(在Objective-C中称为#pragma标记 )。 在每个扩展名上方添加标记,说明其功能。 这样,您的文件看起来就像被分成几部分。

查看我最新的项目:

App Store上的“VIP体育投注技巧和比分”
此应用程序仅在iOS设备的App Store中可用。 通过遵循我们的专业投注来增加您的利润… apple.co

阅读我在Medium上撰写的更多文章:

引入Clean Swift体系结构(VIP)
立即忘记MVC! hackernoon.com 使用Swift 4的iOS版Google Maps SDK终极指南
许多iOS应用程序都使用Google Maps。 这是一个非常常见的功能,因此我决定在… medium.freecodecamp.org 上准备最终指南。 SWIFT-带有XIB文件的自定义UIView
使用XIB文件定制UIView是iOS开发中非常普遍的做法。 自定义UIView类不包含XIB文件… medium.com 如何为您的iOS应用添加Spotlight支持
一个Swift教程,它将使您的应用程序在Spotlight搜索 hackernoon.com中可用 核心数据关系
了解一对一和一对多关系 hackernoon.com 了解Xcode 9中的自动布局
您需要了解的有关Auto Layout的所有信息 hackernoon.com

订阅我的时事通讯: