Pooling 1.0.1

Pooling 1.0.1

Tests已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新发布2017年12月
SwiftSwift 版本4.0
SPM支持 SPM

Dmitry Volosach 维护。



Pooling 1.0.1

  • 作者
  • Dmitry Volosach

Pooling

Pooling 是一个接口,用于实现符合 对象池设计模式 的类

入门

以下说明将帮助您在本地机器上获取项目副本,并用于开发和测试目的。有关如何在实际系统上部署项目的说明,请参阅 部署

先决条件

  • iOS 8.0+
  • Xcode 9.0+
  • Swift 4

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它

$ gem install cocoapods

要使用 CocoaPods 将 Pooling 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Pooling', '<release version>'
end

然后,运行以下命令

$ pod install

Swift 包管理器

注意:截至目前,在 SPM 中对 iOS 目标和相关系统库 没有正式支持。所以在处理之前请阅读 这篇文章

您只需在您的包描述文件中定义 Pooling 依赖

import PackageDescription

let package = Package(
    name: "YourPackageName",
    products: [
        .library(name: "YourPackageName", targets: ["YourPackageName"]),
    ],
    dependencies: [
        .package(url: "https://github.com/gitvalue/Pooling.git", from: "1.0.0"),
    ],
    targets: [
        .target(
            name: "YourPackageName",
            dependencies: ["Pooling"]),
        .testTarget(
            name: "YourPackageNameTests",
            dependencies: ["Pooling"]),
    ]
)

然后运行

$ swift fetch

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖关系并为您提供二进制框架。

您可以使用以下命令使用 Homebrew 安装 Carthage

$ brew update
$ brew install carthage

要使用 Carthage 将 Pooling 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "https://github.com/gitvalue/Pooling" ~> 1.0.0

运行 carthage update 以构建框架,并将构建的 Pooling.framework 拖到您的 Xcode 项目中。

有关更多信息,请参阅 这篇文章

手动

如果您不希望使用上述任何依赖管理器,您可以通过将 Pooling.swiftPool.swiftPThreadMutex.swift 源文件复制到您的项目中,手动将 Pooling 集成到项目中。

部署

快速开始

import UIKit
import Pooling


class MyViewController: UIViewController {
    private var pool = Pool(size: 50, creator: { return UILabel(frame: CGRect.zero) })

    override func viewDidLoad() {
        super.viewDidLoad()

        // And now you ready to create your views
        let label = pool.borrow()
    }
}

说明

Pool 使用闭包来创建对象,所以通常您应该返回使用指定的初始化器创建的对象。当使用子类时尤为重要。

func createPool(forViewsOf type: UIView.Type) -> Pool<UIView> {
    return Pool<UIView>(size: 50) {
        return type.init(frame: CGRect.zero)
    }
}

版本号

此存储库使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库的 标签

作者

  • Dmitry Volosach - 初期工作 - @vlk1994

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件

致谢

  • 感谢Matt Gallagher为他精美的CwlUtils