我有一些想要跨项目的快速扩展。

但是,我希望避免类别污染,除非要求这些扩展名。

是否可以编写它们,使其仅在完成某些导入后才适用,例如:

import MySwiftExtensions

// Use custom extensions
let x = [1,3,5,7].average()
let y = [1,3,5,7].firstWhere { $0 > 3 }
let z = "campervan".make1337()

我可以将它们写为包裹在单个字母类中的静态方法(例如ø.average([1,3,5,7]),如lodash)来实现相同的目的,但是有时您可以从实例方法中获得更为简洁的用法。

最佳答案

你写了:



当我有要在各个项目中使用的代码时,我将创建一个单独的框架来保存该代码。然后,当我想在新项目中使用该代码时,将框架嵌入到该项目中。或者,出于开发目的,我创建了一个包含项目和框架的工作区。这样一来,我可以同时处理这两个文件,然后仅在需要导出框架时才将框架嵌入最终产品中。

一旦框架被嵌入或位于相同的工作空间中,那么您应该能够使用以下命令将其导入项目中的任何单个文件中:

import MySwiftExtensions

没有import语句的任何文件都不能访问扩展名。

编辑:

这是博客的a link,该博客描述了如何创建Cocoa Touch Framework。这里是another link,它详细描述了如何在开发项目中使用工作区来使用框架。

10-07 15:55
查看更多