Tag: Ios开发

在项目中管理快速扩展的更好方法

我们如何在项目中管理扩展。 下面来自我的项目的截图说明了一切。 例如,我有一个简单的扩展UIColor + toImage,用于从一种颜色生成图像。 用法。 让redImage = UIColor.red.toImage() 完美不是吗? 可读性 。 1.没有人可以轻易猜出此函数是来自原始UIColor类还是来自我自定义的扩展(除非深入阅读该定义。) 2.该扩展会在不同的项目中重复使用,因此我们很可能希望它们继续进行到下一个项目中。 很难猜测它所属的名称空间。 一种简单而古老的方法是在扩展名中的所有函数名称之前使用带有_( 下划线 )的前缀。 例如。 my_或abc_ 让redImage = UIColor.red.my_toImage() 但是这种解决方案是无法管理的,因为我们必须确保所有函数都以my_作为前缀。 如果我们使用my.toImage()而不是my_toImage()怎么办。 因此,想法是制作一个名为MyHelper的单个模块类/结构,其中将包含所有扩展方法。 如果需要,我们也可以将功能分组为扩展。 MyHelperCompatible协议具有` my`变量,该变量保存整个MyHelper类/结构对象。 现在,我们可以根据用途扩展MyHelper 。 例如。 在上面的文件中,我们可以添加与UIColor相关的其他帮助器函数。 同样,我们可以将alls函数分组为MyHelper扩展。 最后,我们可以像下面一样访问toImage()。 让redImage = UIColor.red.my.toImage() 从现在开始,我们只需要创建上面的扩展和方法即可。 无论如何,我们都想停止这种行为,我们可以注释掉/删除一致性部分。 //扩展名UIColor:MyHelperCompatible {} 提示 :将所有一致性保持在一个地方而不是分散在项目周围是一件好事,这样您就可以更好地控制。 我知道这似乎有点棘手,并且需要花费额外的精力来设置一次,但是我相信,随着项目的发展,它会大有帮助。