Cassette
Cassette 是一组针对 iOS 和 macOS 的队列相关类。由 LinkedIn 维护。Cassette 最初由 Segment 实现。Cassette 源于 Tape。
QueueFile
是一个高效的、基于文件的 FIFO 队列。添加到或从实例中删除的运算是 O(1) 操作。写入是同步的;数据将在操作返回之前写入到磁盘。此队列旨在可靠且能够在系统或进程崩溃中存活。
安装库
CocoaPods
target 'MyApp' do
pod 'Cassette', '1.0.0-beta3'
end
手动
下载库的最新二进制。
使用方法
CASObjectQueue
与遵循 NSCoding 协议的任意对象协同工作。一个 CASObjectQueue
可以由持久的 CASQueueFile
支持,或者在内存中。
CASObjectQueue<NSNumber *> *queue;
// Persistent ObjectQueue
NSError *error;
queue = [[CASFileObjectQueue alloc] initWithRelativePath:@"Test-File" error:&error];
// In-Memory ObjectQueue
queue = [[CASInMemoryObjectQueue alloc] init];
向队列末尾添加一些数据。
[queue add:@1];
读取队列头部的数据。
// Peek the eldest element.
NSNumber *data = [queue peek];
// Peek the eldest `n` elements.
NSArray<NSNumber *> *data = [queue peek:n];
移除已处理元素。
// Remove the eldest element.
[queue pop];
// Remove 'n' elements.
[queue pop:n];
// Remove all elements.
[queue clear];