     // MARK: -
 
     private static func UTIsForTagClass(_ tagClass: String, tag: String, conformingToUTI: UTI?) -> [UTI] {
-        let conformingToUTIString: CFString? = conformingToUTI?.UTIString
-        guard let rawUTIs = UTTypeCreateAllIdentifiersForTag(tagClass, tag, conformingToUTIString)?.takeRetainedValue() else { return [] }
+        let conformingToUTIString: CFString? = conformingToUTI?.UTIString as CFString?
+        guard let rawUTIs = UTTypeCreateAllIdentifiersForTag(tagClass as CFString, tag as CFString, conformingToUTIString)?.takeRetainedValue() else { return [] }
         return (rawUTIs as NSArray as? [String] ?? []).map { UTI($0) }
     }
 


    public var iconFileURL: URL? {
        if let iconFile = declaration.iconFile {
            return self.declaringBundle?.urlForResource(iconFile, withExtension: nil) ??
                   self.declaringBundle?.urlForResource(iconFile, withExtension: "icns")
        }
        return nil
    }

    // MARK: - Tags

    private func tagWithClass(_ tagClass: String) -> String? {
        return UTTypeCopyPreferredTagWithClass(UTIString as CFString, tagClass as CFString)?.takeRetainedValue() as String?
    }

    @available(OSX, introduced:10.10)
    @available(iOS, introduced:8.0)
    private func tagsWithClass(_ tagClass: String) -> [String] {
        guard let tags = UTTypeCopyAllTagsWithClass(UTIString as CFString, tagClass as CFString)?.takeRetainedValue() else { return [] }
        return tags as NSArray as? [String] ?? []
    }

