- Add your own contributions to the next release on the line below this with your name.
- [performance] Return TTL cache objects without waiting for all metadata to be read. [#228] (pinterest#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]pinterest#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)