BRReusableQueue 0.1.0

BRReusableQueue 0.1.0

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最后发布2016年2月

Cornelius Horstmann维护。



  • 作者:
  • Cornelius Horstmann

BRReuseableQueue

ReuseableQueue 是一个简单、私有的免费队列,您可以用来重复使用每个对象。

如何开始使用

Swift

pod 'BRReuseQueue/Swift'
use_frameworks!

Objc

pod 'BRReuseQueue/OBJC'

Swift 使用方法

// Import BRReusableQueue
import BRReusableQueue

// get hold of your queue
let reusableQueue = BRReusableQueue.sharedQueue // or you can create your own one

// enqueue an object you don't need
let reusableObject = ReusableClass()
reusableQueue.enqueueReusable(reusableObject)

// dequeue the object
reusableQueue.dequeueReusableWithClass(ReusableClass)

Objective-C 使用方法

// Import BRReusableQueue
@import BRReusableQueue;

// get hold of your queue
ReusableQueue *reusableQueue = [BRReusableQueue sharedQueue]; // or you can create your own one

// enqueue an object you don't need
ReusableClass *reusableObject = [ReusableClass new];
[reusableQueue enqueueReusable:reusableObject];

// dequeue the object
[reusableQueue dequeueReusableWithClass:ReusableClass];

自定义可重复使用的类

存储在 ReusableQueue 中的所有对象都必须实现 Reusable 协议。协议中的所有方法都是可选的,旨在帮助您自定义队列。

自定义 reuseIdentifier

默认情况下,reuseIdentifier 是对象的类名。您可以通过实现 reuseIdentifier 来更改此行为。

optional static func reuseIdentifier() -> String

轻松创建对象

默认情况下,您只能使用 dequeueReusableWithIdentifierdequeueReusableWithClass 方法来获取对象。如果队列中没有指定标识符的对象,则这些方法返回 nil。

dequeueOrCreateReusableWithClass 将从队列中取出一个对象,如果没有找到则创建一个新的。

optional static func newForReuse() -> AnyObject?

准备重复使用

每个被放入可重复使用队列中的对象都会调用 prepareForReuse 方法。使用它来将其重置为默认状态,并去除您不需要的所有内容。

optional func prepareForReuse() -> Void

开发

Swift 和 Objc 变体是并存的。Objc 变体存在是因为Objc-only项目可以在不要求Swift运行时的情况下使用它。Swift 变体存在是因为我想在 Swift 中玩耍。

这种设置使得测试有点困难。测试代码应该以完全相同的方式进行两种变体的测试。为了在 Swift / Objc 代码之间切换测试,请更改(取消)注释 BRReusableQueue-Bridging-Header.hBRReusableQueueTests.swift:12 中的行。我仍在寻找一种优化方法。