 
 public extension NSString {
     /**
-     Returns an `NSRange` indicating the length of the `NSString`.
+     An `NSRange` indicating the length of the `NSString`.
+     
+     - returns: An `NSRange`
+     */
+    var range: NSRange {
+        return String(self).range
+    }
+
+    var stringByLowercasingFirstLetter: String {
+        return String(self).stringByLowercasingFirstLetter
+    }
+
+    var stringByUppercasingFirstLetter: String {
+        return String(self).stringByLowercasingFirstLetter
+    }
+
+    var stringByReplacingSpacesWithDashes: String {
+        return String(self).stringByReplacingSpacesWithDashes
+    }
+
+    public func stringByConverting(toNamingFormat naming: VariableNamingFormat) -> String {
+        return String(self).stringByConverting(toNamingFormat: naming)
+    }
+}
+
+public extension NSAttributedString {
+    /**
+     Returns an `NSRange` indicating the length of the `NSAttributedString`.
      
      - returns: An `NSRange`
      - author: Daniel Loewenherz

        self = stringByConverting(toNamingFormat: .underscores)
    }

    var stringByLowercasingFirstLetter: String {
        let start = characters.index(after: startIndex)
        return substring(to: start).lowercased() + substring(with: start..<endIndex)
    }

    var stringByUppercasingFirstLetter: String {
        let start = characters.index(after: startIndex)
        return substring(to: start).uppercased() + substring(with: start..<endIndex)
    }

    var URLEncodedString: String? {
        guard let string = addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) else {
            return nil
        }

        return string
    }

    var stringByReplacingSpacesWithDashes: String {
        let options: NSRegularExpression.Options = []
        let regex = try! NSRegularExpression(pattern: "[ ]", options: options)

     - date: February 17, 2016
     */
    var range: NSRange {
        return string.range
    }

