     
     // MARK: Read & write utils
     
-    /// Write an object for key. This object must inherit from NSObject and implement NSCoding protocol. String, Array, Dictionary conform to this method. NOTE: Cannot write UIImage with this method
+    
+    /// Write an object for key. This object must inherit from `NSObject` and implement `NSCoding` protocol. `String`, `Array`, `Dictionary` conform to this method.
+    ///
+    /// NOTE: Can't write `UIImage` with this method. Please use `writeImage(_:forKey:)` to write an image
     public func writeObject(value: NSCoding, forKey key: String) {
         let data = NSKeyedArchiver.archivedDataWithRootObject(value)
         writeData(data, forKey: key)
     }
     
-    /// Read an object for key. This object must inherit from NSObject and implement NSCoding protocol. String, Array, Dictionary conform to this method
+    /// Read an object for key. This object must inherit from `NSObject` and implement NSCoding protocol. `String`, `Array`, `Dictionary` conform to this method
     public func readObjectForKey(key: String) -> NSObject? {
         let data = readDataForKey(key)
         

        return readObjectForKey(key) as? Dictionary<String, AnyObject>
    }
    
    
}

// MARK: Utils


import UIKit

public enum ImageFormat {
    case Unknown, PNG, JPEG
}

public class DataCache {
    private static let cacheDirectoryPrefix = "com.nch.cache."
    private static let ioQueuePrefix = "com.nch.queue."
