 }
 
 public func ==(lhs: UTI, rhs: UTI) -> Bool {
-    return UTTypeEqual(lhs.UTIString, rhs.UTIString)
+    return UTTypeEqual(lhs.UTIString as CFString, rhs.UTIString as CFString)
 }
 
 public func ~=(pattern: UTI, value: UTI) -> Bool {
-    return UTTypeConformsTo(value.UTIString, pattern.UTIString)
+    return UTTypeConformsTo(value.UTIString as CFString, pattern.UTIString as CFString)
 }

    }

    public init?(filenameExtension: String, conformingToUTI: UTI? = nil) {
        let conformingToUTIString: CFString? = conformingToUTI?.UTIString
        guard let rawUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, filenameExtension, conformingToUTIString)?.takeRetainedValue() else { return nil }
        self.UTIString = rawUTI as String
    }

    public init?(MIMEType: String, conformingToUTI: UTI? = nil) {
        let conformingToUTIString: CFString? = conformingToUTI?.UTIString
        guard let rawUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, MIMEType, conformingToUTIString)?.takeRetainedValue() else { return nil }
        self.UTIString = rawUTI as String
    }


    @available(OSX, introduced:10.10)
    @available(iOS, introduced:8.0)
    public var isDeclared: Bool {
        return UTTypeIsDeclared(UTIString as CFString)
    }

    @available(OSX, introduced:10.10)
    @available(iOS, introduced:8.0)
    public var isDynamic: Bool {
        return UTTypeIsDynamic(UTIString as CFString)
    }

    // MARK: - Declaration
