Latest0.0.5
Homepagehttps://github.com/nuudles/RecyclingCenter
LicenseMIT
Platformsios 8.0, tvos 9.0, requires ARC
Authors

RecyclingCenter

RecyclingCenter is a simple manager that handles dequeuing and enqueuing reused objects. It works similar to how UITableView and UICollectionView dequeue their cells. Instead of registering a class, you register an initHandler closure, which returns your Recyclable class.

Features

  • Simply dequeue and enqueue your Recyclable objects
  • Clears out the unused objects when the application receives a memory warning
  • Works with any kind of object, not just UI elements

Requirements

  • iOS 8.0+
  • tvOS 9.0+
  • Xcode 7+

Installation using CocoaPods

CocoaPods is a dependency manager for Cocoa projects.

Because RecyclingCenter is written in Swift, you must use frameworks.

To integrate RecyclingCenter into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'RecyclingCenter'

Then, run the following command:

$ pod install

Installation using Carthage

Add this to your Cartfile:

github "nuudles/RecyclingCenter"

Usage

You will need to have a RecyclingCenter for each kind of Recyclable class you want to use. Simply initialize a center and register an initHandler for your reuseIdentifier:

let recyclingCenter = RecyclingCenter<RecyclableView>()
recyclingCenter.registerInitHandler({ (_) in return RecyclableView(color: .redColor()) }, forReuseIdentifier: ViewController.redReuseIdentifier)

Later when you want to dequeue a Recyclable object by calling:

let redView = recyclingCenter.dequeueObjectWithReuseIdentifier(ViewController.redReuseIdentifier, context: nil)

When you want to recycle a view, simply enqueue it:

recyclingCenter.enqueueObject(redView, withReuseIdentifier: ViewController.redReuseIdentifier)

Take a look at the Example project for a more concrete example. Try playing around with the +Red and +Blue buttons and you should see logs when the RecyclingCenter has to create the objects. Remove them using the -Red and -Blue buttons and when you re-add new views you should see that the views are being recycled. If you simulate a memory warning, you should see the recycled objects get flushed out, thus having to create new ones.

Latest podspec

{
    "name": "RecyclingCenter",
    "version": "0.0.5",
    "license": "MIT",
    "summary": "A simple manager to handle recycled and reused objects",
    "homepage": "https://github.com/nuudles/RecyclingCenter",
    "authors": {
        "Christopher Luu": "[email protected]"
    },
    "source": {
        "git": "https://github.com/nuudles/RecyclingCenter.git",
        "tag": "0.0.5"
    },
    "platforms": {
        "ios": "8.0",
        "tvos": "9.0"
    },
    "source_files": "Source/*.swift",
    "requires_arc": true
}

Pin It on Pinterest

Share This