Fast, non-deadlocking parallel object cache for iOS and OS X.
PINCache is a fork of TMCache re-architected to fix issues with deadlocking caused by heavy use. It is a key/value store designed for persisting temporary objects that are expensive to reproduce, such as downloaded data or the results of slow processing.
It is comprised of two self-similar stores, one in memory (PINMemoryCache) and one on disk (PINDiskCache), all backed by GCD and safe to access from multiple threads simultaneously. On iOS, PINMemoryCache will clear itself when the app receives a memory warning or goes into the background. Objects stored in PINDiskCache remain until you trim the cache yourself, either manually or by setting a byte or age limit.
SDK for Apple
[new] Added support for object subscripting
[new] Add support for file writing protection
[new] tvOS framework for Carthage
[fix] Start trash background task after dispatch
[fix] Nullability correction
[fix] Fix Xcode warnings printing a pointer value for self
[fix] Update total cost on item replace
[fix] Use pthread mutex instead of a semaphore for locking
[fix] Use NSConditionalLock
[cleanup] Removed local weak self references; It is the same as having one weak