SYTimer
SYTimer 是一个高性能定时库。它为您提供了使用主 runLoop 或其他 runLoop 在您下一个应用程序中运行的机会。
基于 iOS 的 CFRunLoop Timer。
SYTimer
设置主 runLoop 中 timer 的最简单用法
_timer = [SYTimer mainRunLoopTimerWithRunLoopMode:kCFRunLoopCommonModes block:^(SYTimer * _Nonnull) {
// do
}];
[_timer startRepeating:.5];
SYTimer 会将 timer 放入 runLoopCommonModes 堆并设置 runLoop timer 的下一触发日期。
其他 runLoop
_otherRunLoopTimer = [[SYTimer alloc] initWithRunLoop:[SYRunLoop current] runLoopMode:kCFRunLoopCommonModes block:^(SYTimer * timer) {
// do
}];
[_otherRunLoopTimer startRepeating:.5];
仅需创建 runLoop timer 并将其添加到当前 runLoop。
SYHeap
查看 SYHeap 代码。它包含最小堆和最大堆,INCREASE-KEY 和 DECREASE-KEY。它就像 NSArray 一样使用。
SYThreadSpecificVariable
一个可以像普通变量一样读取和设置的变量,但是它为每个线程持有不同的变量。
SYHeapItem
一种打包为 SYHeapItem 的对象,并将其存储在为其指定的 SYHeap 中。
特性
- 所有 runLoop 和 runLoopMode 支持。
- 只在主 runLoop 中创建了两个 runLoop 定时器。
- 在主 runLoop 中基于优先级队列。
- ThreadSpecificVariable。
- Heap 和 HeapItem。
安装
CocoaPods
- 在您的 Podfile 中添加
pod 'SYTimer'
。 - 运行
pod install
或pod update
。 - 导入 <SYTimer/SYTimer.h>。
要求
本库需要支持 iOS 10.0+ 和 Xcode 10.0+。
许可证
SYTimer 在 MIT 许可下提供。有关详细信息,请参阅 LICENSE 文件。