CombinationGenerator 0.2.4

CombinationGenerator 0.2.4

Francisco Javier Trujillo Mata维护。



  • 作者:
  • Francisco Javier Trujillo Mata

CombinationGenerator

CI CIContainer Version License Platform Readme Score

概述

CombinationGenerator基本上是一个辅助工具,它使用暴力搜索法生成给定属性可能值的列表中所有可能的数据模型组合。CombinationGenerator使用泛型,这使得您的任务更加便捷。

要求

适用于iOS 9及以上版本。需要Swift 5.2和XCode 11.0或更高版本。

安装

Swift 包管理器

您可以通过将以下行添加到您的 Package.swift 中,在 Swift 包管理器 中安装 CombinationGenerator:

import PackageDescription

let package = Package(
    [...]
    dependencies: [
        .Package(name: "CombinationGenerator", url: "https://github.com/cosmicfools/CombinationGenerator.git", .branch("master"))
    ]
)

Cocoapods

您可以通过将以下行添加到您的 Podfile 中,在 Cocoapods 中安装 CombinationGenerator:

pod 'CombinationGenerator'

如果您仍然想了解它是如何工作的,请继续阅读:

一个例子通常比1000个字更容易理解,所以……

1. 导入 CombinationGenerator

import CombinationGenerator

2. 创建您的数据模型

class UserInfo {
    var name: String?
    var surname: String?
    var age: Int?
}

3. 实例化,添加组合并生成所有可能性

let generator = Generator<UserInfo>()
generator.addCombination(propertyKey: "name", values: ["Tete", "MadMoc", "Pableras", "Trujy"])
generator.addCombination(propertyKey: "surname", values: ["Molon", "Singular", "Friendly"])
generator.addCombination(propertyKey: "age", values: [18, 33, 40])


let possibilities = generator.generateCombinations()

4. 结果

在先前的例子中,如果我们想查看生成的对象,我们可以这样做:

possibilities.forEach { print($0.name!, $0.surname!, $0.age!.description, $0.gender.debugDescription) }

接收到的输出

Tete Molon 18
Tete Singular 18
Tete Friendly 18
MadMoc Molon 18
MadMoc Singular 18
MadMoc Friendly 18
Pableras Molon 18
Pableras Singular 18
Pableras Friendly 18
Trujy Molon 18
Trujy Singular 18
Trujy Friendly 18
Tete Molon 33
Tete Singular 33
Tete Friendly 33
MadMoc Molon 33
MadMoc Singular 33
MadMoc Friendly 33
Pableras Molon 33
Pableras Singular 33
Pableras Friendly 33
Trujy Molon 33
Trujy Singular 33
Trujy Friendly 33
Tete Molon 40
Tete Singular 40
Tete Friendly 40
MadMoc Molon 40
MadMoc Singular 40
MadMoc Friendly 40
Pableras Molon 40
Pableras Singular 40
Pableras Friendly 40
Trujy Molon 40
Trujy Singular 40
Trujy Friendly 40

Well Done!

作者

Francisco Javier Trujillo Mata, [email protected]

许可协议

CombinationGenerator 可在 MIT 许可协议下使用。请参阅 LICENSE 文件以获取更多信息。