3.0.4 (2024-05-13)
- Add ability to configure maxConcurrentOperations #329 (andyfinnell)
- Add Least Frequently Used eviction strategy #328 (andyfinnell)
- Update project and installation methods (CocoaPods and Swift Package Manager) for Xcode 15 #327 (tstump-phunware)
3.0.3 (2020-10-22)
- Update PINOperation to fix imports #293 (garrettmoon)
- Add support for automated releases #292 (garrettmoon)
- Fix up imports #290 (garrettmoon)
- Fix build issues by removing nested PINOperation.xcodeproj #282 (elliottwilliams)
3.0.2 (2020-10-06)
Merged pull requests:
- Update checkout action #287 (garrettmoon)
- Use make commands on the CI so it actually fails #286 (garrettmoon)
- Added SPM support #283 (3a4oT)
- Fix PINCaching compiling in Xcode 12.0b6 (#275) #281 (sagesse-cn)
3.0.1 (2020-08-20)
Implemented enhancements:
Merged pull requests:
- Update PINOperation #277 (garrettmoon)
- Fix PINCacheTests compiling in Xcode 12.0b4 #276 (arangato)
- Remove BUCK files #274 (adlerj)
- Fix compiling in Xcode 12.0b4 #273 (zacwest)
- Fix the grammar in an assertion failure message #270 (jparise)
- Add Carthage for watchOS, fix macOS min deployment target version #269 (dreampiggy)
- Remove the unused CI directory #265 (jparise)
- Fix up analyze for github CI #264 (garrettmoon)
- Use correct class name in NSAssert() messages #263 (jparise)
- Check fileURL outside of the locked scope #262 (jparise)
- Remove Danger from the project #261 (jparise)
- Switch to GitHub Actions for CI #259 (jparise)
- Test that the "remove object" blocks are called #258 (jparise)
- Discrepancy between Header Comment and Implementation #trivial #257 (jlaws)
- Optimization
PINMemoryCache
trim to date #252 (kinarobin) - Optimize
PINMemoryCache
remove objects when receive memory warning notification #251 (kinarobin)
- [fix] Initing PINCache with TTL enabled should enable TTL on PINMemoryCache. #246
- [performance] Return TTL cache objects without waiting for all metadata to be read. #228
- [performance] Memory cache now performs some tasks such as trimming and removing experied objects with low priority. #234
- [fix] Fix up warnings and upgrade to PINOperation 1.1.1: #213
- [performance] Reduce locking churn in cleanup methods. #212
- [fix] Don't set file protection unless requested. #220
- [new] Add ability to set an object level TTL: #209
- [performance] Improve performance of age limit trimming: #224
- [fix] Add some sane limits to the disk cache: [#201]#201
- [new] Update enumeration methods to allow a stop flag to be flipped by caller: #204
- [performance] Improves cache miss performance by ~2 orders of magnitude on device: #202
- [performance] Significantly improve startup performance: #203
- [fix] Respect small byteLimit settings by checking object size in setObject: #198
- [new] Added an ability to set custom encoder/decoder for file names: #192
- [new] Removed need for extension macro: #72
- [fixed] When ttlCache is enabled, skip updating the file modification time when accessing
fileURLForKey:
#70
- [new] Allow caches to behave like a TTLCache #66
- [fix] Fix disk caching bug due to incorrect string encoding #42
- [new] Added
tvOS
support - [fixed] PINDiskCache byteCount tracking bug #30
- [new] Xcode 7 support
- [fixed] Invalid task ID's used for expiration handler on background tasks #13
- [fixed] Support for OS X since UIBackgroundTask is only on iOS #19
- [new] Added support for using PINCache in extensions
- [new] Adopting nullability annotations.
- [fix] PINCache redesign to avoid deadlocks
- [fix] TMDiskCache/TMMemoryCache: import
UIKit
to facilitate Swift usage (thanks digabriel!) - [fix] TMDiskCache: add try catch to ensure an exception isn’t thrown if a file on disk is unable to be unarchived (thanks leonskywalker!)
- [fix] TMDiskCache: create trash directory asynchronously to avoid race condition (thanks napoapo77!)
- [new] Remove deprecated
documentation
property from Podspec
- [new] TMDiskCache: introduced concept of "trash" for rapid wipeouts
- [new] TMDiskCache:
nil
checks to prevent crashes - [new] TMCache/TMDiskCache/TMMemoryCache: import Foundation to facilitate Swift usage
- [new] TMDiskCache: added method
enumerateObjectsWithBlock:completionBlock:
- [new] TMDiskCache: added method
enumerateObjectsWithBlock:
- [new] TMDiskCache: added unit tests for the above
- [new] TMMemoryCache: added method
enumerateObjectsWithBlock:completionBlock:
- [new] TMMemoryCache: added method
enumerateObjectsWithBlock:
- [new] TMMemoryCache: added event block
didReceiveMemoryWarningBlock
- [new] TMMemoryCache: added event block
didEnterBackgroundBlock
- [new] TMMemoryCache: added boolean property
removeAllObjectsOnMemoryWarning
- [new] TMMemoryCache: added boolean property
removeAllObjectsOnEnteringBackground
- [new] TMMemoryCache: added unit tests for memory warning and app background blocks
- [del] TMCache: removed
cost
methods pending a solution for disk-based cost
- [fix] TMCache: prevent
objectForKey:block:
from hitting the thread ceiling - [new] TMCache: added a test to make sure we don't deadlock the queue
- [fix] simplified appledoc arguments in podspec, updated doc script
- [new] TMCache: added method
setObject:forKey:withCost:
- [new] TMCache: documentation
- [new] TMCache: added property
diskByteCount
(for convenience) - [new] TMMemoryCache:
totalCost
now returned synchronously from queue - [fix] TMMemoryCache:
totalCost
set to zero immediately afterremoveAllObjects:
- [fix] TMCache: cache hits from memory will now update access time on disk
- [fix] TMDiskCache: set & remove methods now acquire a
UIBackgroundTaskIdentifier
- [fix] TMDiskCache: will/didAddObject blocks actually get executed
- [fix] TMDiskCache:
trimToSize:
now correctly removes objects in order of size - [fix] TMMemoryCache:
trimToCost:
now correctly removes objects in order of cost - [new] TMDiskCache: added method
trimToSizeByDate:
- [new] TMMemoryCache: added method
trimToCostByDate:
- [new] TMDiskCache: added properties
willRemoveAllObjectsBlock
&didRemoveAllObjectsBlock
- [new] TMMemoryCache: added properties
willRemoveAllObjectsBlock
&didRemoveAllObjectsBlock
- [new] TMCache: added unit tests
- added an optional "cost limit" to
TMMemoryCache
, including new properties and methods - calling
[TMDiskCache trimToDate:]
with[NSDate distantPast]
will now clear the cache - calling
[TMDiskCache trimDiskToSize:]
will now remove files in order of access date - setting the byte limit on
TMDiskCache
to 0 will no longer clear the cache (0 means no limit)