精华内容
下载资源
问答
  • <div><p>Is there a specific UTI I can use for the Tumblr App, or do I always have to use public? <p>Reason this is a concern. Everyone has the .png UTI in their apps now. So sending to tumblr is more ...
  • Uti switch

    2021-01-06 06:08:37
    ve attempted to switch to using only UTIs for object types, which means we can use all the fun things like UTI conformance, means devs will rearly need to implement <code>validActionsForDirectObject.....
  • Added UTI Module

    2020-11-23 08:13:09
    50% of women will get at least one UTI in their lifetime, with some getting 2 or 3. In rare cases women can also get recurring UTIs that happen every 2-4 months for life. UTIs are rare for males but ...
  • iOS UTI

    2017-09-09 17:37:00
    UTI全拼Uniform Type Identifier,直接翻译过来就是统一类型标示符。 这个东西可以实现的功能就是设备之间或者app之间的文件传输。 有兴趣的领个支付宝红包再走, ^_^ 全套相关传送门已经为大家找好,欢迎评论...

    UTI全拼Uniform Type Identifier,直接翻译过来就是统一类型标示符。

    这个东西可以实现的功能就是设备之间或者app之间的文件传输。

    有兴趣的领个支付宝红包再走, ^_^  

    全套相关传送门已经为大家找好,欢迎评论点赞。

    https://www.jianshu.com/p/cee3cc083807

    http://www.cocoachina.com/industry/20131105/7295.html

    https://www.jianshu.com/p/d6fe1e7af9b6

    http://www.cocoachina.com/industry/20131105/7295.html

    https://www.jianshu.com/p/a6b288093b29

     

    展开全文
  • UTI USER Extension-crx插件

    2021-03-25 02:10:17
    语言:English (UK) 这是UTI USER自动填充 您可以1点击复制,另一点击自动填写任何表格
  • 文章目录由来UTIs 的语法和使用关于 type统一性UTI 字符组UTI 语法public domaindyn domain一致性层次结构 Conformance Hierarchy如何在应用中使用 UTIs申明新的 UTIMIMEType 、OSType 翻译改编自 《Uniform Type ...


    引言

    UTI 用于标记数据类型,是一个普通但并不常见和深度使用的概念,大部分资料并没有将它讲清楚;因为研究其他的功能需要,所以打算深入过一遍。本文翻译改编自官方文档:


    一、UTI 由来

    有这样的情况

    • 被作为 TEXT 类型的文件,有的是 .text 后缀,有点事 .txt 后缀;
    • 一些文件类型,是其他类型的子集;
    • 一个可以打开 .txt 文件的应用,可能也可以打开带有 .html 拓展的文件;
    • 去完全统计一个应用可以打开哪些可能类型的文件,非常困难;
    • 这会导致用户体验很差:不明白为什么app可以打开一个 text 文件,却无法打开另一个。

    为了解决上述问题,Apple 为特定的数据标识 定义了一个语法,称为 Uniform Type Identifier
    每一个 UTI 为一个特定的 文件类型、数据类型、文件夹或包类型 提供了一个唯一标识。
    此外,特定类型的其他类型标识符命名空间 可以分组在一个UTI下,可以从一个格式 转化为另一个格式。

    UTI 在 macOS 10.3 和 iOS 3.0 及以上版本可用。


    二、UTIs 的语法和使用

    关于 type

    • UTI 是一个字符串,标识 被认为具有“type”的一类实体;
    • 对于 文件或者其他字节流,type 指的是数据的格式;
    • 对于 packages 或 bundles 这样的实体,type 指的是 文件夹内部的继承结构;

    统一性

    一般而言,一个 UTI 对数据提供了一致的标识符,这样所有应用和服务可以识别和依赖,从而无需跟踪所有现有的标记数据的方法。

    比如,当前一个 JPEG 文件 可以被标记为以下类型
    - 一个四字符的文件类型编码(OSType): JPEG
    - 一个文件扩展名:.jpg
    - 一个文件扩展名:.jpeg
    - 一个MIME type:image/jpeg

    UTI 将以上所有不兼容的标记方法,替换为字符串:public.jpeg; 对于一个给定的 UTI,你可以生成对应的 OSType、MIME type、文件扩展名 等等。

    由于 UTI 可以用来标记任何实体,他们比旧的标记方法更灵活,你可以用他们来标记一下实体:

    • 剪贴板数据
    • 文件夹
    • Bundles
    • Frameworks
    • 流数据
    • 别名和符号链接

    你也可以自定义 UTI,来方便自己或第三方应用、插件来使用。


    UTI 字符组

    UTI 是一个 Unicode 字符串,只能由 ASCII 表中的字符组成。
    你可以使用罗马字符 A-Z, a-z、数字 0-9 和 点. ,破折号 -
    此限制基于 RFC 1035 中规定的 DNS名称限制。

    如果在 UTI 中使用非法字符,比如下划线_, 冒号:, 空格,会导致被拒绝作为有效的 UTI;这样的错误在 API 层面没有警告。


    UTI 语法

    UTI 使用反向DNS格式,最初用于描述Java类层次结构的元素,现在在 macOS 和 iOS 中也用于 bundle 标识;如:

    • com.apple.quicktime-movie
    • com.mycompany.myapp.myspecialfiletype
    • public.html
    • com.apple.pict
    • public.jpeg

    UTI 语法确保给定的标识符是唯一的,而不需要中央机构注册或以其他方式跟踪它们。
    请注意,域(com、public等)仅用于标识域层次结构中的UTIs位置;它并不意味着任何类似类型的分组。


    public domain

    public domain 是为大多数应用程序通用的 公共或标准类型 保留的,如:

    • public.text
    • public.plain-text
    • public.jpeg
    • public.html

    目前只有苹果申明这个类型。


    dyn domain

    dyn domain 主要用于特定的动态标识。下文将继续描述。


    其他所有的 domain 都可以被申明;一般企业使用 com 作为 domain 开头,如:

    • com.apple.quicktime-movie
    • com.yoyodyne.buckybits

    一致性层次结构 Conformance Hierarchy

    UTI 相比其他标识方法,最重要的有点事,他们可以被申明在一个一致性层次结构总。


    一致性层次结构
    A conformance hierarchy

    • public.html 继承自 public.text,这样能打开 public.text 类型的文件,就能打开 public.html 类型的文件;
    • 如果你的文件继承自 public.tiff,就自动拥有 public.image 和 public.data 的特性;
    • 支持多继承:比如 com.apple.application-package 继承自 com.apple.bundle 和 com.apple.package;
    • 在设计 UTI 的时候,需要同时考虑 物理 和功能上的层次。比如考虑物理性质(一个文件夹、文件等) 和 功能属性(一个图片、电影等)

    Physical and functional hierarchies


    Dynamic Type Identifiers 动态类型标识

    有时您可能会遇到一个没有声明UTI的数据类型。UTIs通过为该类型创建动态标识符,来透明地处理这种情况。
    例如,假设您的app找到一个它无法识别的NSPasteboard类型,它仍然可以将类型转换为UTI,然后传递给用户。
    动态标识符具有域dyn,后面的字符串的其余部分是不透明的。
    您可以像处理任何其他UTI一样处理动态标识符,并且可以提取原始标识符标记。
    您可以将动态标识符视为围绕未知文件扩展名、MIME类型、OSType等的与UTI兼容的包装器。



    三、如何在应用中使用 UTIs

    在 app 中采用UTIs 由两个过程组成:

    1. 使用 UTIs,来识别或交换数据;
    2. 为 app 使用的任何 专有类型 声明特定的UTIs。

    macOS 应用中的 UTI 支持

    以下技术用到了 UTIs:

    1. 剪贴板管理器 和 翻译服务;
    2. 导航服务(Navigation Services)允许你为文件过滤定义 UTIs;
    3. 启动服务(Launch Services)支持基于 UTI 的文件申明;
    4. NSView 和 NSWindow 支持基于 UTI 的拖拽协议;
    5. NSDocument, NSOpenPanel, NSSavePanel, and NSWorkspace 都支持 UTIs;
    6. NSSound, NSImage and NSImageRep 使用 UTIs 来返回支持的数据类型.

    此外,苹果公司已经弃用了大多数旧的数据识别机制,转而支持UTI。

    重要:当使用系统定义的 UTI 时,应该使用 Launch Services framework 框架 UTCoreTypes.h 文件中的常量,而非 UTI 字符串;比如 UTI 类型为com.apple.application,则使用 kUTTypeApplication

    iOS 相应的常量定义在 MobileCoreServices 框架的 UTCoreTypes.h 文件中;


    UTI 功能概览

    测试相等和一致性

    UTTypeEqual 是否相同

    当你需要查看两个 UTI 是否相同,应该使用 UTTypeEqual 函数,而非直接使用字符串匹配;

    Boolean UTTypeEqual (
            CFStringRef inUTI1,
            CFStringRef inUTI2
        );
    

    以下情况中两个 UTI 相同:

    1. 完全一样的 UTI 字符串;
    2. 一个动态标识 的标签描述是其他 UTI 标签的子集;

    UTTypeConformsTo

    查看两个 UTI 的兼容性,可以使用 UTTypeConformsTo 函数:

    Boolean UTTypeConformsTo (
            CFStringRef inUTI1,
            CFStringRef inUTI2
        );
    

    如果 inUTI1 符合 inUTI2,返回 true。
    一致性关系是传递的,如果 A 符合 B,B 符合 C,那么 A 符合 C。


    操作标签(tags)


    UTTypeCreatePreferredIdentifierForTag 标识的UTI

    为了高效使用 UTI,你一般需要将其他类型标识(如 OSType, MIME 等)转化为 UTI,可以使用 UTTypeCreatePreferredIdentifierForTag 函数

    CFStringRef UTTypeCreatePreferredIdentifierForTag(
            CFStringRef inTagClass,
            CFStringRef inTag,
            CFStringRef inConformingToUTI
        );
    

    对于标签的类 inTagClass,你可以传递以下常量来替换标识:

    const CFStringRef kUTTagClassFilenameExtension;
    const CFStringRef kUTTagClassMIMEType;
    const CFStringRef kUTTagClassNSPboardType;
    const CFStringRef kUTTagClassOSType;
    

    对于 inConformingToUTI,你可以传一个 UTI 作为提示,来防止给定的 tag 出现在多个 UTI 申明中。
    比如,你知道文件扩展名 是一个文件而非 文件夹的,可以传递 public.data,这样就会忽略 public.directory 及符合的其他类型;
    如果没有提示,可以传 NULL。

    如果存在两个或多个相同的标识,这个函数会采用 public UTI 代替其他。

    如果这个标识没有申明 UTI,UTTypeCreatePreferredIdentifierForTag 创建逼格返回动态的标识。


    UTTypeCreateAllIdentifiersForTag 标识的所有UTI

    如果你想获取给定标识的所有UTI,可以使用 UTTypeCreateAllIdentifiersForTag 函数

    CFArrayRef UTTypeCreateAllIdentifiersForTag(
        CFStringRef inTagClass,
        CFStringRef inTag,
        CFStringRef inConformingToUTI );
    

    返回一个数组;


    UTTypeCopyPreferredTagWithClass 从UTI创建替换的标识
    CFStringRef UTTypeCopyPreferredTagWithClass(
        CFStringRef inUTI,
        CFStringRef inTagClass );
    

    首选标记 是给定标记类的标记规范数组中 列出的第一个标记。


    转换 OSType 标识

    UTI 工具函数假设所有的标识标签都可以被转换为 Core Foundation 字符串。但是,OSType 是数值型,而非字符型;CFStringRef 和 OSType 之间的转换可能不那么准确。
    要确保 OSType标识符的编码和解码无错误,请使用以下转换函数:

    CFStringRef UTCreateStringForOSType( OSType inOSType );
     
    OSType UTGetOSTypeFromString( CFStringRef inTag );
    

    OSType 值如果只包含 可打印的7位ASCII字符,你还是可以使用带有四个字符的 CFSTR 宏(如 CFSTR(“TEXT”)),来创建一个有效的 OSType 标记。


    访问 UTI 信息

    可以使用 UTTCopyDeclaration 函数来获取 UTI 的申明信息

    CFDictionaryRef UTTypeCopyDeclaration(
        CFStringRef inUTI );
    

    一个 包含了给定 UTI 的 bundle,获取它的URL,可以使用 UTTypeCopyDeclaringBundleURL 函数:

    CFURLRef UTTypeCopyDeclaringBundleURL(
        CFStringRef inUTI );
    

    获取给定 UTI 的本地描述,可以使用 UTTypeCopyDescription 函数

    CFStringRef UTTypeCopyDescription(
        CFStringRef inUTI );
    

    四、申明新的 UTI

    在 info.plist 中申明新的 UTI 信息,你可以申明以下 UTIs:

    1. Application bundles
    2. Spotlight Importer bundles
    3. Automator action bundles

    在申明 UTI 字符串之外,申明还可以包含以下属性:

    • tag specification,指定其他替换的标签 匹配这个类型;
    • 这个 UTI 继承的 UTI 列表;
    • 展示这个类型项目时的图标;
    • 拥堵可读的字符串,bundle 可以本地化该字符;

    你的 UTI 申明必须可以被导入或导出

    • 可导出意味着,这个类型可以被其他方式读取。
      比如,一个 app 使用 专有文件格式 需要被声明为一个可导出的 UTI;

    • 可导入的申明用来声明 bundle 不拥有的类型,但希望在系统上可用。
      例如,假设一个视频编辑app 使用专有格式创建文件,其UTI在其应用程序包中声明。如果你正在编写一个可以读取此类文件的app或插件,则必须确保系统知道专有的UTI,即使实际的视频编辑app不可用。
      为此,应用程序应该在自己的包中重新声明UTI,但将其标记为导入声明。

    如果UTI的导入和导出声明都存在,则导出的声明优先于导入的声明。


    Sample

    下面是 public.jpeg 的申明示例,定义为导出类型,如 property list 中所示:

    <key>UTExportedTypeDeclarations</key>
            <array>
                <dict>
                    <key>UTTypeIdentifier</key>
                    <string>public.jpeg</string>
                    
                    <key>UTTypeReferenceURL</key>
                    <string>http://www.w3.org/Graphics/JPEG/</string>
                    
                    <key>UTTypeDescription</key>
                    <string>JPEG image</string>
                    
                    <key>UTTypeIconFile</key>
                    <string>public.jpeg.icns</string>
                    
                    <key>UTTypeConformsTo</key>
                    <array>
                        <string>public.image</string>
                        <string>public.data</string>
                    </array>
                    
                    <key>UTTypeTagSpecification</key>
                    <dict>
                        <key>com.apple.ostype</key>
                        <string>JPEG</string>
                        <key>public.filename-extension</key>
                        <array>
                            <string>jpeg</string>
                            <string>jpg</string>
                        </array>
                        <key>public.mime-type</key>
                        <string>image/jpeg</string>
                    </dict>
                    
                </dict>
            </array> 
    

    Property list keys for uniform type identifiers

    Key Value type Description
    UTExportedTypeDeclarations array of dictionaries An array of exported UTI declarations (that is, identifiers owned by the bundle’s publisher).
    UTImportedTypeDeclarations array of dictionaries An array of imported UTI declarations (that is, identifiers owned by another company or organization).
    UTTypeIdentifier string The UTI for the declared type. This key is required for UTI declarations.
    UTTypeTagSpecification dictionary A dictionary defining one or more equivalent type identifiers.
    UTTypeConformsTo array of strings The UTIs to which this identifier conforms.
    UTTypeIconFile string The name of the bundle icon resource to associate with this UTI.
    UTTypeDescription string A user-visible description of this type. You can localize this string by including it in an InfoPlist.stringsfile.
    UTTypeReferenceURL string The URL of a reference document describing this type.

    申明建议

    • 你的 UTI 必须是惟一的;
      遵循反向DNS 格式 com.companyName 是一个简单的确保唯一性的方法;
      虽然系统可以支持具有 相同规范的 不同UTI字符串,但不能处理相同规范的 不同UTI 字符串。

    • 如果你需要使用第三方定义的 UTI 类型,这个类型并不是系统默认的,你需要在bundle 的 imported 类型中声明它。

    • 如果你的类型是某个或多个类型的子类型,记得添加集成信息;
      如果继承自某个非public 的类型,就不需要申明,除非这个类型在你的bundle 中定义了;
      虽然一个自定义的 UTI 可以继承自任意 UTI,public.data 或 com.apple.package 必须位于所有文件格式(如文档)的自定义UTI的一致性层次结构的根部;否则,系统无法判断磁盘上的项是否具有该UTI。


    五、系统定义的 UTI

    1、System-defined uniform type identifiers

    Identifier (Constant) Conforms to Tags Comments
    public.item (kUTTypeItem) - Base type for the physical hierarchy.
    public.content (kUTTypeContent) - Base type for all document content.
    public.composite-content (kUTTypeCompositeContent) public.content Base type for mixed content. For example, a PDF file contains both text and special formatting data.
    public.data (kUTTypeData) public.item Base physical type for byte streams (flat files, pasteboard data, and so on).
    public.database - Base functional type for databases.
    public.calendar-event - Base functional type for scheduled events.
    public.message (kUTTypeMessage) - Base type for messages (email, IM, and so on).
    public.presentation public.composite-content Base type for presentations.
    public.contact (kUTTypeContact) - Base type for contact information.
    public.archive (kUTTypeArchive) - Base type for an archive of files and directories.
    public.disk-image (kUTTypeDiskImage) public.archive Base type for items mountable as a volume.
    public.text (kUTTypeText) public.content, public.data Base type for all text, including text with markup information (HTML, RTF, and so on).
    public.plain-text (kUTTypePlainText) public.text .txt, text/plain Text of unspecified encoding, with no markup. Equivalent to the MIME type text/plain
    public.utf8-plain-text (kUTTypeUTF8PlainText) public.plain-text ‘utf8’, NSStringPBoardType Unicode-8
    public.utf16-external-plain-text (kUTTypeUTF16ExternalPlainText) public.plain-text ‘ut16’ Unicode-16 with byte-order mark (BOM), or if BOM is not present, an external representation byte order (big-endian).
    public.utf16-plain-text (kUTTypeUTF16PlainText) public.plain-text ‘utxt’ Unicode-16, native byte order, with an optional byte-order mark (BOM).
    com.apple.traditional-mac-plain-text public.plain-text ‘TEXT’ Classic Mac OS text.
    public.rtf (kUTTypeRTF) public.text 'RTF ', .rtf, text/rtf, NeXT Rich Text Format 1.0 pasteboard type, NSRTFPBoardType Rich Text.
    com.apple.ink.inktext (kUTTypeInkText) public.data Opaque InkText data.
    public.html (kUTTypeHTML) public.text ‘HTML’, .html, .htm, text/html, Apple HTML pasteboard type HTML text.
    public.xml (kUTTypeXML) public.text .xml, text/xml XML text.
    public.source-code (kUTTypeSourceCode) public.plain-text Generic source code.
    public.c-source (kUTTypeCSource) public.source-code .c C source code.
    public.objective-c-source (kUTTypeObjectiveCSource) public.source-code .m Objective-C source code.
    public.c-plus-plus-source (kUTTypeCPlusPlusSource) public.source-code .cp, .cpp, .c++, .cc, .cxx C++ source code.
    public.objective-c-plus-plus-source (kUTTypeObjectiveCPlusPlusSource) public.source-code .mm Objective-C++ source code.
    public.c-header (kUTTypeCHeader) public.source-code .h C header file.
    public.c-plus-plus-header (kUTTypeCPlusPlusHeader) public.source-code .hpp, .h++ , .hxx C++ header file.
    com.sun.java-source (kUTTypeJavaSource) public.source-code .java, .jav Java source code
    public.script public.source-code Base type for scripting language source code.
    public.assembly-source public.source-code .s Assembly language source code.
    com.apple.rez-source public.source-code .r Rez source code.
    public.mig-source public.source-code .defs, .mig Mig definition source code.
    com.apple.symbol-export public.source-code .exp Symbol export list.
    com.netscape.javascript-source public.source-code, public.executable .js, .jscript, .javascript, text/javascript JavaScript.
    public.shell-script public.script .sh, .command Shell script.
    public.csh-script public.shell-script .csh C-shell script.
    public.perl-script public.shell-script .pl, .pm, text/x-perl-script Perl script.
    public.python-script public.shell-script .py, text/x-python-script Python script.
    public.ruby-script public.shell-script .rb, .rbw, text/ruby-script Ruby script.
    public.php-script public.shell-script .php, .php3, .php4, .ph3, .ph4, .phtml, text/x-php-script, text/php, application/php PHP script.
    com.sun.java-web-start public.xml .jnlp, application/x-java, jnlp-file, application/jnlp Java web start.
    com.apple.applescript.text public.script .applescript AppleScript text.
    com.apple.applescript.script public.data .scpt, ‘osas’ AppleScript.
    public.object-code public.data, public.executable .o Object code.
    com.apple.mach-o-binary public.data, public.executable Mach-O binary.
    com.apple.pef-binary public.data, public.executable PEF (CFM-based) binary
    com.microsoft.windows-executable public.data, public.executable .exe, application/x-msdownload Microsoft Windows application.
    com.microsoft.windows-dynamic-link-library public.data, public.executable .dll, application/x-msdownload Microsoft dynamic link library.
    com.sun.java-class public.data, public.executable .class Java class.
    com.sun.java-archive public.data, public.executable, public.archive .jar , application/java-archive Java archive.
    com.apple.quartz-composer-composition public.data, public.executable .qtz , application/x-quartzcomposer Quartz Composer composition.
    org.gnu.gnu-tar-archive public.data, public.archive .gtar, application/x-gtar GNU archive.
    public.tar-archive org.gnu.gnu-tar-archive .tar, application/x-tar, application/tar Tar archive.
    org.gnu.gnu-zip-archive public.data, public.archive .gz, .gzip, application/x-gzip, application/gzip Gzip archive.
    org.gnu.gnu-zip-tar-archive org.gnu.gnu-zip-archve .tgz Gzip tar archive.
    com.apple.binhex-archive public.data, public.archive .hqx, application/mac-binhex40, application/mac-binhex, application/binhex BinHex archive.
    com.apple.macbinary-archive public.data, public.archive .bin, application/x-macbinary, application/macbinary MacBinary archive.
    public.url (kUTTypeURL) public.data 'url ’ Uniform Resource Locator.
    public.file-url (kUTTypeFileURL) public.url ‘furl’ File URL.
    public.url-name - ‘urln’ URL name.
    public.vcard (kUTTypeVCard) public.data, public.content ‘vCrd’, .vcf, .vcard, text/directory, text/vcard, text/x-vcard, Apple Vcard, pasteboard type vCard (electronic business card).
    public.image (kUTTypeImage) public.data, public.content Base type for images.
    public.fax public.image Base type for fax images.
    public.jpeg (kUTTypeJPEG) public.image ‘JPEG’, .jpg, .jpeg, image/jpeg JPEG image.
    public.jpeg-2000 (kUTTypeJPEG2000) public.image 'jp2 ', .jp2, image/jp2 JPEG 2000 image.
    public.tiff (kUTTypeTIFF) public.image ‘TIFF’, .tif, .tiff, image/tiff, NeXT TIFF v4.0 pasteboard type, NSTIFFPBoardType TIFF image.
    public.camera-raw-image public.image Base type for digital camera raw image formats.
    com.apple.pict (kUTTypePICT) public.image ‘PICT’, .pic, .pct, .pict, image/pict, image/x-pict, image/x-macpict PICT image
    com.apple.macpaint-image public.image .pntg, ‘PNTG’ MacPaint image.
    public.png (kUTTypePNG) public.image ‘PNGf’, .png, image/png PNG image
    public.xbitmap-image public.image .xbm, image/x-quicktime X bitmap image.
    com.apple.quicktime-image (kUTTypeQuickTimeImage) public.image ‘qtif’, .qif, .qtif, image/x-quicktime QuickTime image.
    com.apple.icns (kUTTypeAppleICNS) public.image ‘icns’, .icns Mac OS icon image.
    com.apple.txn.text-multimedia-data (kUTTypeTXNTextAndMultimediaData) public.data, public.composite-content ‘txtn’ MLTE (Textension) format for mixed text and multimedia data.
    public.audiovisual-content (kUTTypeAudioVisualContent) public.data, public.content Base type for any audiovisual content.
    public.movie public.audiovisual-content Base type for movies (video with optional audio or other tracks).
    public.video (kUTTypeVideo) public.movie Base type for video (no audio).
    com.apple.quicktime-movie (kUTTypeQuickTimeMovie) public.movie ‘MooV’, .mov, .qt, video/quicktime QuickTime movie.
    public.avi public.movie .avi, .vfw, 'Vfw ', video/avi, video/msvideo, video/x-msvideo AVI movie.
    public.mpeg (kUTTypeMPEG) public.movie 'MPG ', ‘MPEG’, .mpg, .mpeg, .m75, .m15, video/mpg, video/mpeg, video/x-mpg, video/x-mpeg MPEG-1 or MPEG-2 content.
    public.mpeg-4 (kUTTypeMPEG4) public.movie ‘mpg4’, .mp4, video/mp4, video/mp4v MPEG-4 content.
    public.3gpp public.movie .3gp, .3gpp, ‘3gpp’, video/3gpp, audio/3gpp 3GPP movie.
    public.3gpp2 public.movie .3g2 , .3gp2 , ‘3gp2’, video/3gpp2, audio/3gpp2 3GPP2 movie.
    public.audio (kUTTypeAudio) public.audiovisual-content Base type for audio (no video).
    public.mp3 (kUTTypeMP3) public.audio ‘MPG3’, ‘mpg3’, 'Mp3 ', 'MP3 ', ‘mp3!’, ‘MP3!’, .mp3, audio/mpeg, audio/mpeg3, audio/mpg, audio/mp3, audio/x-mpeg, audio/x-mpeg3, audio/x-mpg, audio/x-mp3 MPEG-3 audio.
    public.mpeg-4-audio (kUTTypeMPEG4Audio) public.audio, public.mpeg4 'M4A ', .m4a MPEG-4 audio.
    com.apple.protected-mpeg-4-audio (kUTTypeAppleProtectedMPEG4Audio) public.audio 'M4P ', 'M4B ', .m4p, .m4b Protected MPEG-4 audio. (iTunes music store format)
    public.ulaw-audio public.audio .au, .ulw, .snd, ‘ULAW’, audio/basic, audio/au, audio/snd μLaw audio.
    public.aifc-audio public.audio .aifc, .aiff, .aif, ‘AIFC’, audio/aiff, audio/x-aiff AIFF-C audio.
    public.aiff-audio public.audio .aiff, .aif, ‘AIFF’, audio/aiff, audio/x-aiff AIFF audio.
    com.apple.coreaudio-format public.audio .caf, ‘caff’ Core Audio format.
    public.directory (kUTTypeDirectory) public.item Base type for directories.
    public.folder (kUTTypeFolder) public.directory A plain folder (that is, not a package).
    public.volume (kUTTypeVolume) public.folder A volume.
    com.apple.package (kUTTypePackage) public.directory A package (that is, a directory presented to the user as a file).
    com.apple.bundle (kUTTypeBundle) public.directory ‘BNDL’, .bundle A directory with an internal structure specified by Core Foundation Bundle Services. .
    public.executable - Base type for executable data.
    com.apple.application (kUTTypeApplication) public.executable Base type for applications and other launchable files.
    com.apple.application-bundle (kUTTypeApplicationBundle) com.apple.package, com.apple.bundle, com.apple.application ‘APPL’, .app Application bundle.
    com.apple.application-file (kUTTypeApplicationFile) com.apple.application public.data ‘APPL’ Application file.
    com.apple.deprecated-application-file com.apple.application-file ‘APPC’, ‘APPD’, ‘APPE’, ‘appe’, ‘CDEV’, ‘cdev’, ‘dfil’ Deprecated application file.
    com.apple.plugin com.apple.bundle, com.apple.package .plugin Plugin.
    com.apple.metadata-importer com.apple.plugin .mdimporter Spotlight importer plugin.
    com.apple.dashboard-widget com.apple.bundle, com.apple.package .wdgt Dashboard widget.
    public.cpio-archive public.data .cpio CPIO archive.
    com.pkware.zip-archive public.data, public.archive .zip, application/zip Zip archive.
    com.apple.webarchive (kUTTypeWebArchive) public.data, public.composite-content Web Kit webarchive format.
    com.apple.framework (kUTTypeFramework) com.apple.bundle ‘FMWK’, .framework Framework.
    com.apple.rtfd (kUTTypeRTFD) com.apple.package, public.composite-content .rtfd Rich Text Format Directory. That is, Rich Text with content embedding, on-disk format.
    com.apple.flat-rtfd (kUTTypeFlatRTFD) public.data, public.composite-content NeXT RTFD pasteboard type, NSRTFDPBoardType Rich Text with content embedding, pasteboard format.
    com.apple.resolvable (kUTTypeResolvable) - Items that the Alias Manager can resolve.
    public.symlink (kUTTypeSymLink) public.item, com.apple.resolvable UNIX-style symlink.
    com.apple.mount-point (kUTTypeMountPoint) public.item, com.apple.resolvable A volume mount point
    com.apple.alias-record (kUTTypeAliasRecord) public.data, com.apple.resolvable ‘alis’ Alias record.
    com.apple.alias-file (kUTTypeAliasFile) public.data, com.apple.resolvable Alias file.
    public.font public.data Base type for fonts.
    public.truetype-font public.font TrueType font.
    com.adobe.postscript-font public.font PostScript font.
    com.apple.truetype-datafork-suitcase-font public.truetype-font .dfont, ‘dfon’ TrueType data fork font.
    public.opentype-font public.font .otf, ‘OTTO’ PostScript OpenType font.
    public.truetype-ttf-font public.truetype-font .ttf TrueType OpenType font.
    public.truetype-collection-font public.font .ttc, ‘ttcf’ TrueType collection font.
    com.apple.font-suitcase public.font .suit, ‘FFIL’, ‘ffil’, ‘sfnt’, ‘tfil’ Font suitcase.
    com.adobe.postscript-lwfn-font com.adobe.postscript-font ‘LWFN’ PostScript Type 1 outline font.
    com.adobe.postscript-pfb-font com.adobe.postscript-font .pfb PostScriptType1 outline font.
    com.adobe.postscript.pfa-font com.adobe.postscript-font .pfa PostScriptType 1 outline font.
    com.apple.colorsync-profile public.data .icc, .icm, .pf , ‘prof’ ColorSync profile.

    2、lists UTIs used to identify alternate tags.

    You use these to specify alternate methods of tag identification in UTI declarations.

    Identifier Conforms to Comments
    public.filename-extension public.case-insensitive-text Filename extension.
    public.mime-type public.case-insensitive-text MIME type.
    com.apple.ostype public.text Four-character code (type OSType).
    com.apple.nspboard-type public.text NSPasteboard type.

    3、lists third-party UTIs that the system redeclares as imported types.

    Identifier (Constant) Conforms to Tags Comments
    com.adobe.pdf (kUTTypePDF) public.data, public.composite-content 'PDF ', .pdf, application/pdf, Apple PDF pasteboard type PDF data.
    com.adobe.postscript public.data .ps, application/postscript PostScript data.
    com.adobe.encapsulated-postscript com.adobe.postscript .eps, NeXT Encapsulated PostScript v1.2 pasteboard type Encapsulated PostScript.
    com.adobe.photoshop-image public.image .psd, '8BPS, ’ image/x-photoshop, image/photoshop, image/psd, application/photoshop Adobe Photoshop document.
    com.adobe.illustrator.ai-image public.image .ai Adobe Illustrator document.
    com.compuserve.gif (kUTTypeGIF) public.image ‘GIFf’, .gif, image/gif GIF image.
    com.microsoft.bmp (kUTTypeBMP) public.image 'BMP ', ‘BMPf’, .bmp Windows bitmap image.
    com.microsoft.ico (kUTTypeICO) public.image .ico Windows icon image.
    com.microsoft.word.doc public.data ‘W8BN’, .doc, application/msword Microsoft Word data.
    com.microsoft.excel.xls public.data ‘XLS8’, .xls, application/vnd.ms-excel Microsoft Excel data.
    com.microsoft.powerpoint.ppt public.data, public.presentation .ppt, ‘SLD8’, application/mspowerpoint Microsoft PowerPoint presentation.
    com.microsoft.waveform-audio public.audio .wav, .wave, ‘.WAV’, ‘WAVE’, audio/wav, audio/wave Waveform audio.
    com.microsoft.advanced-systems-format public.audiovisual-content .asf , ‘ASF_’, video/x-ms-asf Microsoft Advanced Systems format.
    com.microsoft.windows-media-wm public.movie, com.microsoft.advanced-systems-format .wm, video/x-ms-wm Windows media.
    com.microsoft.windows-media-wmv public.movie, com.microsoft.advanced-systems-format .wmv, video/x-ms-wmv Windows media.
    com.microsoft.windows-media-wmp public.movie, com.microsoft.advanced-systems-format .wmp, video/x-ms-wmp Windows media.
    com.microsoft.windows-media-wma public.audio, com.microsoft.advanced-systems-format .wma, video/x-ms-wma Windows media audio.
    com.microsoft.advanced-stream-redirector public.xml, public.audiovisual-content .asx, ‘ASX_’, video/x-ms-asx Advanced Stream Redirector.
    com.microsoft.windows-media-wmx public.audio, com.microsoft.advanced-stream-redirector .wmx , video-x-ms-wmx Windows media.
    com.microsoft.windows-media-wvx public.audio, com.microsoft.advanced-stream-redirector .wvx, video-x-ms-wvx Windows media.
    com.microsoft.windows-media-wax public.audio, com.microsoft.advanced-stream-redirector .wax, video-x-ms-wax Windows media audio.
    com.apple.keynote.key com.apple.package, public.presentation .key Apple Keynote document.
    com.apple.keynote.kth com.apple.package, public.composite-content .kth Apple Keynote theme.
    com.truevision.tga-image public.image .tga, ‘TPIC’, image/targa, image/tga, application/tga TGA image.
    com.sgi.sgi-image public.image .sgi, ‘.SGI’, image/sgi Silicon Graphics image.
    com.ilm.openexr-image public.image .exr OpenEXR image.
    com.kodak.flashpix.image public.image .fpx, image/fpx, application/vnd.fpx FlashPix image.
    com.j2.jfx-fax public.fax .jfx J2 fax.
    com.js.efx-fax public.fax .efx, image/efax eFax fax.
    com.digidesign.sd2-audio public.audio .sd2, ‘Sd2f’ Digidesign Sound Designer II audio.
    com.real.realmedia public.movie .rm, ‘PNRM’, application/vnd.rn-realmedia RealMedia.
    com.real.realaudio public.audio .ram, .ra , ‘PNRA’, audio/vnd.rn-realaudio, audio/x-pn-realaudio RealMedia audio.
    com.real.smil public.xml .smil, application/smil Real synchronized multimedia integration language.
    com.allume.stuffit-archive public.data, public.archive .sit, .sitx, application/x-stuffit, application/x-sit , application/stuffit Stuffit archive.

    其他相关文档

    展开全文
  • iOS - UTI

    2016-10-31 14:39:00
    一、UTI概念 1、什么是UTI Uniform Type Identifier,是字符串,格式标识符。 根据UTI,可得到相应的其他类型的格式标识符。比如public.jpeg对应于: A four-character file type code (an OSType) of '...

    一、UTI概念

     

    1、什么是UTI

     

    Uniform Type Identifier,是字符串,格式标识符。

    根据UTI,可得到相应的其他类型的格式标识符。比如public.jpeg对应于:

     

    • A four-character file type code (an OSType) of 'JPEG'
    • A filename extension of .jpg
    • A filename extension of .jpeg
    • A MIME type of image/jpeg

     

    2、可包含的字符集

     

    可包含字符:字母,数字,点号,连字符。

     

    3、UTI句法

     

    反域名语法

     

    • com.apple.quicktime-movie
    • com.mycompany.myapp.myspecialfiletype
    • public.html
    • com.apple.pict
    • public.jpeg

     

    4、继承

     

    UTI与其他格式标识符的特点是可继承。比如 public.html 继承自 public.text ,声明可以打开 public.text 的应用同样可以打开 public.html。

    支持多继承。比如 com.apple.application-package 继承自 com.apple.bundle 和 com.apple.package。

    UTI可以说明物理和逻辑上两方面的类型。物理上分为文件夹、文件等类型;逻辑上分为图片、音频等类型。

     

    5、Identifier Tags

     

    每个UTI都可以有任意个Identifier Tags,这些Identifier Tags是UTI的等价替代物,比如filename extension, MIME type, or NSPasteboard type。

     

    二、UTI相关函数

     

    定义在MobileCoreServices库的UTType.h中

     

    三、声明新的UTI

     

     

    然后你就可以使用com.kingreader.umd标识符了~

    苹果文档:
    https://developer.apple.com/library/prerelease/watchos/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html#//apple_ref/doc/uid/TP40001319-CH201-SW1

    转载于:https://www.cnblogs.com/tangjuanj/p/6015794.html

    展开全文
  • s plist file defines the <code>org.readium.lcpl</code> UTI. It gives as the mimetype for this UTI <code>application/vnd.readium.lcp.license.v1.0</code> which is incorrect, because ...
  • UTIKit是用于Swift的UTI(统一类型标识符)包装。 特征 UTIKit是一个功能齐全的库,其中包括完整的UTI功能。 可转换性 文件扩展名 MIME类型 OSType(仅OS X) 粘贴板类型(仅OS X) 平等 符合标准 和别的… 用法...
  • UTI support

    2020-12-07 07:05:10
    <div><p>Some universal types don't have suffixes, like public.avchd-collection. Currently Platypus can't register for them.</p><p>该提问来源于开源项目:sveinbjornt/Platypus</p></div>
  • <div><p>This PR updated the logic that used to determine if ...s not mapped to a known UTI. <p>This PR addressed the issue reported in #894.</p><p>该提问来源于开源项目:yonaskolb/XcodeGen</p></div>
  • 背景:先天性肾脏和尿路异常(CAKUT)是儿童发生尿路感染(UTI)的有据可查的危险因素。 提倡在这类患者中预防UTI,因为它们增加了肾脏瘢痕形成,高血压和晚期肾衰竭的风险。 方法:对约翰内斯堡学术医院的CAKUT患者...
  • 关于图片以及格式UTI

    2013-08-16 10:53:00
    Uniform Type Identifiers 定义:...使用UTI获取图片格式: ALAssetRepresentation *assetRep = [asset defaultRepresentation]; NSString *mediaType = [assetRep UTI]; ...

    Uniform Type Identifiers 

    定义:http://www.escape.gr/manuals/qdrop/UTI.html 

    使用UTI获取图片格式:

    ALAssetRepresentation *assetRep = [asset defaultRepresentation];
    NSString *mediaType = [assetRep UTI];

     

    最近做了一个模块,需要获取到ios 图片的详细属性:包括创建时间,文件格式等等。由于AALsset中,包含的内容不详细,只好自己去获取。查询到需要使用ImageIO接口

    首先要导入 AssetsLibrary.framework and ImageIO.framework.

    代码部分:

    #import <ImageIO/ImageIO.h>
    - (NSString *)infoFromImageIO:(ALAssetRepresentation *)assetRep
    {
        NSMutableData *imgData = nil;
        NSString *mediaType = [assetRep UTI];
        // create a buffer to hold image data
        uint8_t *buffer = (Byte*)malloc(assetRep.size);
        NSUInteger length = [assetRep getBytes:buffer fromOffset:0.0  length:assetRep.size error:nil];
        
        if (length > 0)
        {
            imgData = [[NSMutableData alloc] initWithBytesNoCopy:buffer length:length freeWhenDone:YES];
        }
        
        // identify image type (jpeg, png, RAW file, ...) using UTI hint
        NSDictionary* sourceOptionsDict = [NSDictionary dictionaryWithObjectsAndKeys:(id)[assetRep UTI] ,kCGImageSourceTypeIdentifierHint,nil];
        
        // create CGImageSource with NSData
        CGImageSourceRef sourceRef = CGImageSourceCreateWithData((CFDataRef)imgData,  ( CFDictionaryRef) sourceOptionsDict);
        
        // get imagePropertiesDictionary
        CFDictionaryRef imagePropertiesDictionary;
        imagePropertiesDictionary = CGImageSourceCopyPropertiesAtIndex(sourceRef,0, NULL);
        
        // get exif data
        CFDictionaryRef exif = (CFDictionaryRef)CFDictionaryGetValue(imagePropertiesDictionary, kCGImagePropertyExifDictionary);
        NSDictionary *exif_dict = (NSDictionary*)exif;
        
        if (exif_dict && [exif_dict count] > 0)
        {
            //获取创建时间
            NSString *createTime = [NSString stringWithString:[exif_dict objectForKey:@"DateTimeOriginal"]];
            CFRelease(imagePropertiesDictionary);
            CFRelease(sourceRef);
            return createTime;
        }
        
        return nil;
    #if 0
        // save image WITH meta data
        NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSURL *fileURL = nil;
        CGImageRef imageRef = CGImageSourceCreateImageAtIndex(sourceRef, 0, imagePropertiesDictionary);
        
        if (![[sourceOptionsDict objectForKey:@"kCGImageSourceTypeIdentifierHint"] isEqualToString:@"public.tiff"])
        {
            fileURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.%@",
                                              documentsDirectory,
                                              @"myimage",
                                              [[[sourceOptionsDict objectForKey:@"kCGImageSourceTypeIdentifierHint"] componentsSeparatedByString:@"."] objectAtIndex:1]
                                              ]];
            
            CGImageDestinationRef dr = CGImageDestinationCreateWithURL ((__bridge CFURLRef)fileURL,
                                                                        (__bridge CFStringRef)[sourceOptionsDict objectForKey:@"kCGImageSourceTypeIdentifierHint"],
                                                                        1,
                                                                        NULL
                                                                        );
            CGImageDestinationAddImage(dr, imageRef, imagePropertiesDictionary);
            CGImageDestinationFinalize(dr);
            CFRelease(dr);
        }
        else
        {
            NSLog(@"no valid kCGImageSourceTypeIdentifierHint found …");
        }
        // clean up
        CFRelease(imageRef);
        CFRelease(imagePropertiesDictionary);
        CFRelease(sourceRef);
    #endif
    }

    因为我这个接口只需要获取时间,故屏蔽了一部分代码,使用屏蔽部分的内容可以将相册中的图片保存到我们自己应用的沙盒中。

     

    转载于:https://www.cnblogs.com/Peterahan/p/3261617.html

    展开全文
  • t that reliable for getting the UTI of a file, it was return dyn.agk8u for public.executable files, whereas QSUTIWithLSInfoRec() was doing the right thing, so I switched to that and added a comment ...
  • <div><ol> <p>Add configure options to switch codes...<a href="https://github.com/pmodels/mpich/files/574493/uti-14e3512.tar.gz">uti-14e3512.tar.gz</a></p> <p>The slides explaining the motivation of UTI: ...
  • Bittrex Global已上线Unicorn Solutions Chain (UTI),并开放UTI/BTC交易对。 免责声明:以下信息是由通证团队直接提供。根据我们的服务条款,Bittrex Global不控制、认可或采用以下任何信息,且不对此类第三方内容...
  • 今天在学习文档和数据共享中,首先讲的处理统一类型标识符UTI。第一次见,所以记下来以备之用,首先了解UTI和MIME的概念 1.同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下...
  • 介绍了关于数据库软件开发Oracle.9I.as.Containers.For.J2Ee.Jsp.Tag.Libs.And.Uti的详细说明,提供其它知识的技术资料的下载。
  • IOS UTI

    2017-06-11 23:13:25
    而官方文档中有一句话,“If both imported and exported declarations for a UTI exist, the exported declaration takes precedence over imported one”,我的理解是,被导出去得UTI声明所有人是定义UTI的发布者...
  • 之前有整理过关于《根据文件后缀打开APP》的文章 ,请先参考它,然后接下来学习,如何自定UTI。  应用场景:APP 打开本公司自定义格式的文件,特殊的自定义后缀的文件。通过QQ 微信、邮箱等等接受到手机上的特殊...
  • 在不降低精度的前提下减少整个系统成本的方法是采用UTI(通用传感器接口芯片)。这大大的简化了传感器与微处理器之间的硬件接口。UTI将模拟信号转换为在逻辑层面可直接与微处理器输入兼容的脉冲序列。达到14b...
  • This new method actually goes through the UTI tree looking for the package type which should be far more accurate. Note, though, that getting the UTI declaration is a bit expensive so I added a ...
  • 前言:landsat-uti的安装走了不少弯路,特此记录分享,供有缘人使用,切记按照步骤走哦。 安装环境: Anaconda:Anaconda3-4.2.0-Windows-x86_64(百度云链接,ps:过期请呼邮箱) python:3.5版本 百度云链接:链接...
  • 简述 在打开一些文件时,经常可以看到有在XXXAPP中打开,例如使用照片查看器...首先我们要先了解一下UTI,因为网上可以搜到的资源实在是比较少,怕自己忘记还是先记录一下。 UTI是苹果公司提供的统一类型标识符,...
  • iOS UTI(统一类型标识)

    2016-02-22 15:25:00
    同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下一代的MIME类型。UTI是标识资源类型(比如图像和文本)的字符串,他们制定哪些类型的信息将用于公共数据对象,他们不需要依赖...
  • * UTI decoding added to record detected device profile inside table EnoceanSensors Usage: 1) put the enocean device into learning mode. Automagically, Domoticz will create this device without any ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,464
精华内容 1,385
关键字:

uti