对象池是一个接口,适用于实现对象池设计模式的类。
以下说明将帮助您在本地机器上设置并运行项目,以进行开发和测试。有关如何在实际系统上部署项目的说明,请参阅部署。
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
注意: 目前,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是一个去中心化的依赖管理工具,它构建您的依赖项并为您提供二进制框架。
您可以使用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 集成到您的项目中,方法是复制 Pooling.swift、Pool.swift 和 PThreadMutex.swift 源代码文件到您的项目中。
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 进行版本控制。 有关可用版本,请参阅此存储库上的标签。
此项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件