YYCache is a high-performance cache library designed for iOS and macOS applications. It provides a simple and efficient way to cache data and improve overall app performance by reducing the time it takes to fetch data from external sources.


  • Fast and efficient caching mechanism
  • Supports caching of all types of data: objects, strings, images, etc.
  • Simple API with easy integration and usage
  • Automatic memory management to prevent excessive memory usage
  • Thread-safe implementation for multi-threaded environments
  • Supports expiration time and disk persistence
  • Convenient methods for clearing, removing, and checking cache


To install YYCache using Cocoapods, simply add the following line to your Podfile:

pod 'YYCache'

If you prefer to use Carthage, include the following line in your Cartfile:

github "ibireme/YYCache"

Getting Started

To start using YYCache in your project, follow these steps:

  • Import the YYCache module in your file:

import YYCache
  • Create an instance of YYCache:

let cache = YYCache(name: "MyCache")
  • Store and retrieve data using the cache:

// Storing data
cache?.setObject(myData, forKey: "myDataKey")

// Retrieving data
if let cachedData = cache?.object(forKey: "myDataKey") as? MyDataType {
    // Use the data


The YYCache API provides various methods to manage and manipulate the cache. Here are some of the key methods:

Storing Objects

Use the following method to store an object in the cache:

func setObject(_ object: NSCoding, forKey key: String)

Retrieving Objects

Use the following method to retrieve an object from the cache:

func object(forKey key: String) -> Any?

Clearing the Cache

Use the following method to clear the cache:

func removeAllObjects()

Use the following method to remove a specific object from the cache:

func removeObject(forKey key: String)

Checking Cache Status

Use the following method to check if an object is present in the cache:

func containsObject(forKey key: String) -> Bool


YYCache is a powerful caching library that can significantly improve the performance of your iOS and macOS applications. Its simple API and efficient caching mechanism make it a must-have tool for data management and optimization.