Cassette 1.0.0-beta5

Cassette 1.0.0-beta5

测试已测试
Lang语言 Obj-CObjective C
许可 BSD-2-Clause
发布上次发布2021 年 7 月

Nikhil Bedi WorkNikhil BediRich Fox 维护。



Cassette 1.0.0-beta5

  • LinkedIn

Build Status

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];