如何在 XCode 和 Swift 中创建和重用模块?

How to create and reuse a module in XCode and Swift?

假设我有这个方法来验证给定的 phone 数字:

func validatePhoneNumber(String: phoneNumber) -> Bool {
    return true
}

我在 /projects/A 中有项目 A,在 /projects/B 中有项目 B。

我不想 copy/paste 在项目中使用此功能。相反,我想应用 DRY(不要重复自己)并在这些项目中重用此功能。

如何在 Swift 和 XCode 中做到这一点?我不知道如何开始。

我会将其添加为 String 的扩展,因此它看起来像这样

extension String {
  func isValidPhoneNumber() {
    return true // better logic here
  }
}

你可以像这样使用它"5552324353".isValidPhoneNumber()

现在您可以在项目之间复制 .swift 文件,或者您可以使用 cocoa pods 创建框架或 pod。

解决这个问题的典型方法是创建一个框架。自定义共享工具存储在 SharedTools.framework 之类的框架中。框架是它自己的项目(文件 > 新建 > 项目...然后选择 Cocoa Touch Framework 或 Cocoa Framework)。

有了共享工具框架后,剩下的就是如何link它们进入项目 A 和项目 B 了。

  • 共享工具项目可以变成一个 pod 并在项目 A 和项目 B 中使用 Cocoapods
  • 项目A和B可以使用Carthage引入共享工具项目
  • 项目 A 和 B 可以变成工作区,共享工具项目可以添加为必需项目

如果您将项目嵌入到工作区中,您可以通过多种方式执行此操作。

  • 共享工具是否与项目 A 和项目 B 并行
  • 共享工具是 A 和 B 的 git 子模块