可重用对象
是创建一个对象并且尽可能多地复用的最简单方法。它允许您避免对如 NSDateFormatter
、NSNumberFormatter
等昂贵对象的多次分配/初始化,或任何您自定义的对象。
适用于iOS、OS X和tvOS。
let reuseIdentifier = "kDateFormatterIdentifier"
NSDateFormatter.registerObjectWithIdentifier(reuseIdentifier)
if let dateFormatter = NSDateFormatter.dequeueReusableObjectWithIdentifier(identifier) as? NSDateFormatter,
reusedDateFormatter = NSDateFormatter.dequeueReusableObjectWithIdentifier(identifier) as? NSDateFormatter {
print("\(dateFormatter) vs \(reusedDateFormatter)") // <NSDateFormatter: 0x7fd1307125c0> vs <NSDateFormatter: 0x7fd1307125c0>
}
查看示例项目以查看其他示例。
可重用对象在SPM上可用。只需将以下内容添加到您的Package文件中即可:
import PackageDescription
let package = Package(
dependencies: [
.Package(url: "https://github.com/tbaranes/ReusableObjects.git", majorVersion: 1)
]
)
只需将Source/*.swift
文件拖入您的项目中。
static func registerObjectWithIdentifier(reuseIdentifier: String)
public func registerObjectWithIdentifier(reuseIdentifier: String)
尝试将一个类注册以在任何地方复用它。如果当前对象或标识符无效,则不执行操作。
reuseIdentifier
参数不能为nil,也不能为空字符串。
static func unregisterObjectWithIdentifier(reuseIdentifier: String)
通过其标识符注销位置的任意对象。如果对象不存在则不执行任何操作。
static func dequeueReusableObjectWithIdentifier(reuseIdentifier: String) -> AnyObject?
通过其标识符返回一个可复用的NSObject
对象。
如果找到任何对象,它会在返回已注册的对象之前注册对象,如果没有发生错误,则返回nil。
可重用对象在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。