精华内容
下载资源
问答
  • 统一类型标识符(UTI)的Objective-C包装器 关于 该项目由用于LaunchServices框架中所有UTI功能的Objective-C包装器组成。 目标是使用Objective-C(基础)数据类型而不是CoreFoundation类型为Uniform Type ...
  • uti-cli 在macOS上获取文件的 (统一类型标识符) 安装 $ npm install --global uti-cli 用法 $ uti --help Example $ uti unicorn.md net.daringfireball.markdown 有关的 此模块的API 执照 麻省理工学院:...
  • 文章目录由来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

    KeyValue typeDescription
    UTExportedTypeDeclarationsarray of dictionariesAn array of exported UTI declarations (that is, identifiers owned by the bundle’s publisher).
    UTImportedTypeDeclarationsarray of dictionariesAn array of imported UTI declarations (that is, identifiers owned by another company or organization).
    UTTypeIdentifierstringThe UTI for the declared type. This key is required for UTI declarations.
    UTTypeTagSpecificationdictionaryA dictionary defining one or more equivalent type identifiers.
    UTTypeConformsToarray of stringsThe UTIs to which this identifier conforms.
    UTTypeIconFilestringThe name of the bundle icon resource to associate with this UTI.
    UTTypeDescriptionstringA user-visible description of this type. You can localize this string by including it in an InfoPlist.stringsfile.
    UTTypeReferenceURLstringThe 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 toTagsComments
    public.item (kUTTypeItem)-Base type for the physical hierarchy.
    public.content (kUTTypeContent)-Base type for all document content.
    public.composite-content (kUTTypeCompositeContent)public.contentBase type for mixed content. For example, a PDF file contains both text and special formatting data.
    public.data (kUTTypeData)public.itemBase 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.presentationpublic.composite-contentBase 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.archiveBase type for items mountable as a volume.
    public.text (kUTTypeText)public.content, public.dataBase type for all text, including text with markup information (HTML, RTF, and so on).
    public.plain-text (kUTTypePlainText)public.text.txt, text/plainText of unspecified encoding, with no markup. Equivalent to the MIME type text/plain
    public.utf8-plain-text (kUTTypeUTF8PlainText)public.plain-text‘utf8’, NSStringPBoardTypeUnicode-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-textpublic.plain-text‘TEXT’Classic Mac OS text.
    public.rtf (kUTTypeRTF)public.text'RTF ', .rtf, text/rtf, NeXT Rich Text Format 1.0 pasteboard type, NSRTFPBoardTypeRich Text.
    com.apple.ink.inktext (kUTTypeInkText)public.dataOpaque InkText data.
    public.html (kUTTypeHTML)public.text‘HTML’, .html, .htm, text/html, Apple HTML pasteboard typeHTML text.
    public.xml (kUTTypeXML)public.text.xml, text/xmlXML text.
    public.source-code (kUTTypeSourceCode)public.plain-textGeneric source code.
    public.c-source (kUTTypeCSource)public.source-code.cC source code.
    public.objective-c-source (kUTTypeObjectiveCSource)public.source-code.mObjective-C source code.
    public.c-plus-plus-source (kUTTypeCPlusPlusSource)public.source-code.cp, .cpp, .c++, .cc, .cxxC++ source code.
    public.objective-c-plus-plus-source (kUTTypeObjectiveCPlusPlusSource)public.source-code.mmObjective-C++ source code.
    public.c-header (kUTTypeCHeader)public.source-code.hC header file.
    public.c-plus-plus-header (kUTTypeCPlusPlusHeader)public.source-code.hpp, .h++ , .hxxC++ header file.
    com.sun.java-source (kUTTypeJavaSource)public.source-code.java, .javJava source code
    public.scriptpublic.source-codeBase type for scripting language source code.
    public.assembly-sourcepublic.source-code.sAssembly language source code.
    com.apple.rez-sourcepublic.source-code.rRez source code.
    public.mig-sourcepublic.source-code.defs, .migMig definition source code.
    com.apple.symbol-exportpublic.source-code.expSymbol export list.
    com.netscape.javascript-sourcepublic.source-code, public.executable.js, .jscript, .javascript, text/javascriptJavaScript.
    public.shell-scriptpublic.script.sh, .commandShell script.
    public.csh-scriptpublic.shell-script.cshC-shell script.
    public.perl-scriptpublic.shell-script.pl, .pm, text/x-perl-scriptPerl script.
    public.python-scriptpublic.shell-script.py, text/x-python-scriptPython script.
    public.ruby-scriptpublic.shell-script.rb, .rbw, text/ruby-scriptRuby script.
    public.php-scriptpublic.shell-script.php, .php3, .php4, .ph3, .ph4, .phtml, text/x-php-script, text/php, application/phpPHP script.
    com.sun.java-web-startpublic.xml.jnlp, application/x-java, jnlp-file, application/jnlpJava web start.
    com.apple.applescript.textpublic.script.applescriptAppleScript text.
    com.apple.applescript.scriptpublic.data.scpt, ‘osas’AppleScript.
    public.object-codepublic.data, public.executable.oObject code.
    com.apple.mach-o-binarypublic.data, public.executableMach-O binary.
    com.apple.pef-binarypublic.data, public.executablePEF (CFM-based) binary
    com.microsoft.windows-executablepublic.data, public.executable.exe, application/x-msdownloadMicrosoft Windows application.
    com.microsoft.windows-dynamic-link-librarypublic.data, public.executable.dll, application/x-msdownloadMicrosoft dynamic link library.
    com.sun.java-classpublic.data, public.executable.classJava class.
    com.sun.java-archivepublic.data, public.executable, public.archive.jar , application/java-archiveJava archive.
    com.apple.quartz-composer-compositionpublic.data, public.executable.qtz , application/x-quartzcomposerQuartz Composer composition.
    org.gnu.gnu-tar-archivepublic.data, public.archive.gtar, application/x-gtarGNU archive.
    public.tar-archiveorg.gnu.gnu-tar-archive.tar, application/x-tar, application/tarTar archive.
    org.gnu.gnu-zip-archivepublic.data, public.archive.gz, .gzip, application/x-gzip, application/gzipGzip archive.
    org.gnu.gnu-zip-tar-archiveorg.gnu.gnu-zip-archve.tgzGzip tar archive.
    com.apple.binhex-archivepublic.data, public.archive.hqx, application/mac-binhex40, application/mac-binhex, application/binhexBinHex archive.
    com.apple.macbinary-archivepublic.data, public.archive.bin, application/x-macbinary, application/macbinaryMacBinary 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 typevCard (electronic business card).
    public.image (kUTTypeImage)public.data, public.contentBase type for images.
    public.faxpublic.imageBase type for fax images.
    public.jpeg (kUTTypeJPEG)public.image‘JPEG’, .jpg, .jpeg, image/jpegJPEG image.
    public.jpeg-2000 (kUTTypeJPEG2000)public.image'jp2 ', .jp2, image/jp2JPEG 2000 image.
    public.tiff (kUTTypeTIFF)public.image‘TIFF’, .tif, .tiff, image/tiff, NeXT TIFF v4.0 pasteboard type, NSTIFFPBoardTypeTIFF image.
    public.camera-raw-imagepublic.imageBase type for digital camera raw image formats.
    com.apple.pict (kUTTypePICT)public.image‘PICT’, .pic, .pct, .pict, image/pict, image/x-pict, image/x-macpictPICT image
    com.apple.macpaint-imagepublic.image.pntg, ‘PNTG’MacPaint image.
    public.png (kUTTypePNG)public.image‘PNGf’, .png, image/pngPNG image
    public.xbitmap-imagepublic.image.xbm, image/x-quicktimeX bitmap image.
    com.apple.quicktime-image (kUTTypeQuickTimeImage)public.image‘qtif’, .qif, .qtif, image/x-quicktimeQuickTime image.
    com.apple.icns (kUTTypeAppleICNS)public.image‘icns’, .icnsMac 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.contentBase type for any audiovisual content.
    public.moviepublic.audiovisual-contentBase type for movies (video with optional audio or other tracks).
    public.video (kUTTypeVideo)public.movieBase type for video (no audio).
    com.apple.quicktime-movie (kUTTypeQuickTimeMovie)public.movie‘MooV’, .mov, .qt, video/quicktimeQuickTime movie.
    public.avipublic.movie.avi, .vfw, 'Vfw ', video/avi, video/msvideo, video/x-msvideoAVI movie.
    public.mpeg (kUTTypeMPEG)public.movie'MPG ', ‘MPEG’, .mpg, .mpeg, .m75, .m15, video/mpg, video/mpeg, video/x-mpg, video/x-mpegMPEG-1 or MPEG-2 content.
    public.mpeg-4 (kUTTypeMPEG4)public.movie‘mpg4’, .mp4, video/mp4, video/mp4vMPEG-4 content.
    public.3gpppublic.movie.3gp, .3gpp, ‘3gpp’, video/3gpp, audio/3gpp3GPP movie.
    public.3gpp2public.movie.3g2 , .3gp2 , ‘3gp2’, video/3gpp2, audio/3gpp23GPP2 movie.
    public.audio (kUTTypeAudio)public.audiovisual-contentBase 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-mp3MPEG-3 audio.
    public.mpeg-4-audio (kUTTypeMPEG4Audio)public.audio, public.mpeg4'M4A ', .m4aMPEG-4 audio.
    com.apple.protected-mpeg-4-audio (kUTTypeAppleProtectedMPEG4Audio)public.audio'M4P ', 'M4B ', .m4p, .m4bProtected MPEG-4 audio. (iTunes music store format)
    public.ulaw-audiopublic.audio.au, .ulw, .snd, ‘ULAW’, audio/basic, audio/au, audio/sndμLaw audio.
    public.aifc-audiopublic.audio.aifc, .aiff, .aif, ‘AIFC’, audio/aiff, audio/x-aiffAIFF-C audio.
    public.aiff-audiopublic.audio.aiff, .aif, ‘AIFF’, audio/aiff, audio/x-aiffAIFF audio.
    com.apple.coreaudio-formatpublic.audio.caf, ‘caff’Core Audio format.
    public.directory (kUTTypeDirectory)public.itemBase type for directories.
    public.folder (kUTTypeFolder)public.directoryA plain folder (that is, not a package).
    public.volume (kUTTypeVolume)public.folderA volume.
    com.apple.package (kUTTypePackage)public.directoryA package (that is, a directory presented to the user as a file).
    com.apple.bundle (kUTTypeBundle)public.directory‘BNDL’, .bundleA directory with an internal structure specified by Core Foundation Bundle Services. .
    public.executable-Base type for executable data.
    com.apple.application (kUTTypeApplication)public.executableBase type for applications and other launchable files.
    com.apple.application-bundle (kUTTypeApplicationBundle)com.apple.package, com.apple.bundle, com.apple.application‘APPL’, .appApplication bundle.
    com.apple.application-file (kUTTypeApplicationFile)com.apple.application public.data‘APPL’Application file.
    com.apple.deprecated-application-filecom.apple.application-file‘APPC’, ‘APPD’, ‘APPE’, ‘appe’, ‘CDEV’, ‘cdev’, ‘dfil’Deprecated application file.
    com.apple.plugincom.apple.bundle, com.apple.package.pluginPlugin.
    com.apple.metadata-importercom.apple.plugin.mdimporterSpotlight importer plugin.
    com.apple.dashboard-widgetcom.apple.bundle, com.apple.package.wdgtDashboard widget.
    public.cpio-archivepublic.data.cpioCPIO archive.
    com.pkware.zip-archivepublic.data, public.archive.zip, application/zipZip archive.
    com.apple.webarchive (kUTTypeWebArchive)public.data, public.composite-contentWeb Kit webarchive format.
    com.apple.framework (kUTTypeFramework)com.apple.bundle‘FMWK’, .frameworkFramework.
    com.apple.rtfd (kUTTypeRTFD)com.apple.package, public.composite-content.rtfdRich Text Format Directory. That is, Rich Text with content embedding, on-disk format.
    com.apple.flat-rtfd (kUTTypeFlatRTFD)public.data, public.composite-contentNeXT RTFD pasteboard type, NSRTFDPBoardTypeRich Text with content embedding, pasteboard format.
    com.apple.resolvable (kUTTypeResolvable)-Items that the Alias Manager can resolve.
    public.symlink (kUTTypeSymLink)public.item, com.apple.resolvableUNIX-style symlink.
    com.apple.mount-point (kUTTypeMountPoint)public.item, com.apple.resolvableA 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.resolvableAlias file.
    public.fontpublic.dataBase type for fonts.
    public.truetype-fontpublic.fontTrueType font.
    com.adobe.postscript-fontpublic.fontPostScript font.
    com.apple.truetype-datafork-suitcase-fontpublic.truetype-font.dfont, ‘dfon’TrueType data fork font.
    public.opentype-fontpublic.font.otf, ‘OTTO’PostScript OpenType font.
    public.truetype-ttf-fontpublic.truetype-font.ttfTrueType OpenType font.
    public.truetype-collection-fontpublic.font.ttc, ‘ttcf’TrueType collection font.
    com.apple.font-suitcasepublic.font.suit, ‘FFIL’, ‘ffil’, ‘sfnt’, ‘tfil’Font suitcase.
    com.adobe.postscript-lwfn-fontcom.adobe.postscript-font‘LWFN’PostScript Type 1 outline font.
    com.adobe.postscript-pfb-fontcom.adobe.postscript-font.pfbPostScriptType1 outline font.
    com.adobe.postscript.pfa-fontcom.adobe.postscript-font.pfaPostScriptType 1 outline font.
    com.apple.colorsync-profilepublic.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.

    IdentifierConforms toComments
    public.filename-extensionpublic.case-insensitive-textFilename extension.
    public.mime-typepublic.case-insensitive-textMIME type.
    com.apple.ostypepublic.textFour-character code (type OSType).
    com.apple.nspboard-typepublic.textNSPasteboard type.

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

    Identifier (Constant)Conforms toTagsComments
    com.adobe.pdf (kUTTypePDF)public.data, public.composite-content'PDF ', .pdf, application/pdf, Apple PDF pasteboard typePDF data.
    com.adobe.postscriptpublic.data.ps, application/postscriptPostScript data.
    com.adobe.encapsulated-postscriptcom.adobe.postscript.eps, NeXT Encapsulated PostScript v1.2 pasteboard typeEncapsulated PostScript.
    com.adobe.photoshop-imagepublic.image.psd, '8BPS, ’ image/x-photoshop, image/photoshop, image/psd, application/photoshopAdobe Photoshop document.
    com.adobe.illustrator.ai-imagepublic.image.aiAdobe Illustrator document.
    com.compuserve.gif (kUTTypeGIF)public.image‘GIFf’, .gif, image/gifGIF image.
    com.microsoft.bmp (kUTTypeBMP)public.image'BMP ', ‘BMPf’, .bmpWindows bitmap image.
    com.microsoft.ico (kUTTypeICO)public.image.icoWindows icon image.
    com.microsoft.word.docpublic.data‘W8BN’, .doc, application/mswordMicrosoft Word data.
    com.microsoft.excel.xlspublic.data‘XLS8’, .xls, application/vnd.ms-excelMicrosoft Excel data.
    com.microsoft.powerpoint.pptpublic.data, public.presentation.ppt, ‘SLD8’, application/mspowerpointMicrosoft PowerPoint presentation.
    com.microsoft.waveform-audiopublic.audio.wav, .wave, ‘.WAV’, ‘WAVE’, audio/wav, audio/waveWaveform audio.
    com.microsoft.advanced-systems-formatpublic.audiovisual-content.asf , ‘ASF_’, video/x-ms-asfMicrosoft Advanced Systems format.
    com.microsoft.windows-media-wmpublic.movie, com.microsoft.advanced-systems-format.wm, video/x-ms-wmWindows media.
    com.microsoft.windows-media-wmvpublic.movie, com.microsoft.advanced-systems-format.wmv, video/x-ms-wmvWindows media.
    com.microsoft.windows-media-wmppublic.movie, com.microsoft.advanced-systems-format.wmp, video/x-ms-wmpWindows media.
    com.microsoft.windows-media-wmapublic.audio, com.microsoft.advanced-systems-format.wma, video/x-ms-wmaWindows media audio.
    com.microsoft.advanced-stream-redirectorpublic.xml, public.audiovisual-content.asx, ‘ASX_’, video/x-ms-asxAdvanced Stream Redirector.
    com.microsoft.windows-media-wmxpublic.audio, com.microsoft.advanced-stream-redirector.wmx , video-x-ms-wmxWindows media.
    com.microsoft.windows-media-wvxpublic.audio, com.microsoft.advanced-stream-redirector.wvx, video-x-ms-wvxWindows media.
    com.microsoft.windows-media-waxpublic.audio, com.microsoft.advanced-stream-redirector.wax, video-x-ms-waxWindows media audio.
    com.apple.keynote.keycom.apple.package, public.presentation.keyApple Keynote document.
    com.apple.keynote.kthcom.apple.package, public.composite-content.kthApple Keynote theme.
    com.truevision.tga-imagepublic.image.tga, ‘TPIC’, image/targa, image/tga, application/tgaTGA image.
    com.sgi.sgi-imagepublic.image.sgi, ‘.SGI’, image/sgiSilicon Graphics image.
    com.ilm.openexr-imagepublic.image.exrOpenEXR image.
    com.kodak.flashpix.imagepublic.image.fpx, image/fpx, application/vnd.fpxFlashPix image.
    com.j2.jfx-faxpublic.fax.jfxJ2 fax.
    com.js.efx-faxpublic.fax.efx, image/efaxeFax fax.
    com.digidesign.sd2-audiopublic.audio.sd2, ‘Sd2f’Digidesign Sound Designer II audio.
    com.real.realmediapublic.movie.rm, ‘PNRM’, application/vnd.rn-realmediaRealMedia.
    com.real.realaudiopublic.audio.ram, .ra , ‘PNRA’, audio/vnd.rn-realaudio, audio/x-pn-realaudioRealMedia audio.
    com.real.smilpublic.xml.smil, application/smilReal synchronized multimedia integration language.
    com.allume.stuffit-archivepublic.data, public.archive.sit, .sitx, application/x-stuffit, application/x-sit , application/stuffitStuffit archive.

    其他相关文档

    展开全文
  • $ npm install file-uti 用法 import { fileUtiAsync } from 'file-uti' ; console . log ( await fileUtiAsync ( 'index.js' ) ) ; //=> 'com.netscape.javascript-source' 原料药 fileUtiAsync(filePath) 返回...
  • UTI-Type-Browser-源码

    2021-07-03 17:22:53
    UTI 类型浏览器 用于 Apple 统一类型标识符 (UTI) 的基于 Web 的浏览器。 有关更多信息,请参阅 。 您可以在看到它正在运行 这是所有 UTI 类型吗? 不。这只是从 /System/Library/CoreServices/CoreTypes.bundle/...
  • UTIKit是用于Swift的UTI(统一类型标识符)包装。 特征 UTIKit是一个功能齐全的库,其中包括完整的UTI功能。 可转换性 文件扩展名 MIME类型 OSType(仅OS X) 粘贴板类型(仅OS X) 平等 符合标准 和别的… 用法...
  • 背景:先天性肾脏和尿路异常(CAKUT)是儿童发生尿路感染(UTI)的有据可查的危险因素。 提倡在这类患者中预防UTI,因为它们增加了肾脏瘢痕形成,高血压和晚期肾衰竭的风险。 方法:对约翰内斯堡学术医院的CAKUT患者...
  • uti-elizalde-angular-源码

    2021-04-29 06:47:57
    Uti-Elizalde 该项目是使用0.14.0版本的。 建设与发展 运行grunt进行构建, grunt serve进行预览。 测验 运行grunt test将使用业力运行单元测试。 uti-elizalde-angular
  • UTi160V_红外热成像仪操作规程
  • UTI USER Extension-crx插件

    2021-04-01 23:52:31
    语言:English (UK) 这是UTI USER自动填充 您可以1点击复制,另一点击自动填写任何表格
  • 今天在学习文档和数据共享中,首先讲的处理统一类型标识符UTI。第一次见,所以记下来以备之用,首先了解UTI和MIME的概念 1.同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下...

    今天在学习文档和数据共享中,首先讲的处理统一类型标识符UTI。第一次见,所以记下来以备之用,首先了解UTI和MIME的概念

    1.同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下一代的MIME类型。UTI是标识资源类型(比如图像和文本)的字符串,他们制定哪些类型的信息将用于公共数据对象,他们不需要依赖于老式的指示符,比如文件扩展名,MIME类型,或者文件类型的元数据

    如图,显示了Apple的基本顺应树的一部分。这个树上位于较低位置的任何项目都必须顺应其所有父数据属性。声明一个父UTI意味着支持他的所有子UTI。因此,可以打开public.data的应用必须能打开文本,电影,图像文件等。其UTI的名称类型就是public.data等

     

    2.MIME的了解可以去百度百科上有定义:http://baike.baidu.com/link?url=TQx8NxQPb8m5bsMWVR6p7NIFemdxyPh6RH_uG01FTKNIg7-iy4-TLiUXVIOxj-BavNOWugJCixMEywo7vJrdPq

    MIME的定义类型如下 如text/xml就是后缀.xml的MIME类型。

                       常见的MIME类型(通用型): 

                        超文本标记语言文本 .html text/html
                        xml文档 .xml text/xml
     
    3.常见的文件扩展名之间的相互转换
     
    首先要添加MobileCoreServices.framework框架,并且在头文件中添加

    #import <MobileCoreServices/MobileCoreServices.h>

    以下都用的是C语言编写的

    (1)后缀名字符串转化为UTI字符串

    -(NSString *)preferredUTIForExtention:(NSString *)ext
    {
        //Request the UTI via the file extension
        NSString *theUTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)(ext), NULL);
        return theUTI;
    }

    (2)使用kUITagClassMIMEType作为第一个参数,给UITypeCreatePreferredIdentifierForTag(),是MIME类型字符串转化为UTI字符串

    NSString *preferredUTIForMIMEType(NSString *mime)
    {
        //request the UTI via the file extention
        NSString *theUTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType,(__bridge CFStringRef)mime, NULL);
        return theUTI;
    }

    (3)使用UITypeCopyPreferredTagWithClass(),是UTI字符串转化为后缀扩展名

    NSString *extensionForUTI(NSString *aUTI)
    {
        CFStringRef theUTI = (__bridge CFStringRef)aUTI;
        CFStringRef results = UTTypeCopyPreferredTagWithClass(theUTI, kUTTagClassFilenameExtension);
        return (__bridge_transfer NSString *)results;
    }

    (4)UTI字符串转化为MIME类型

    NSString *mimeTypeForUTI(NSString *aUTI)
    {
        CFStringRef theUTI = (__bridge CFStringRef) aUTI;
        CFStringRef results = UTTypeCopyPreferredTagWithClass(theUTI, kUTTagClassMIMEType);
        return (__bridge_transfer NSString *)results;
    }

    (5)测试顺应性,使用UITypeConformsTo()函数测试顺应性。该函数接受两个参数:一个源UTI和一个要比较的UTI,如果第一个UTI顺应第二个UTI,就返回True。相等性测试则使用UITypeEqual(),下面显示了一个示例,说明如何顺应性测试,确定文件路径是否可能指向图像资源。

    BOOL pathPointsToLikelyUTIMatch(NSString *path, CFStringRef theUTI)
    {
        NSString *extension = path.pathExtension;
        NSString *preferredUTI = preferredUTIForExtension(extension);
        return (UTTypeConformsTo((__bridge CFStringRef) preferredUTI, theUTI));
    }
    
    BOOL pathPointsToLikelyImage(NSString *path)
    {
        return pathPointsToLikelyUTIMatch(path, CFSTR("public.image"));
    }
    
    BOOL pathPointsToLikelyAudio(NSString *path)
    {
        return pathPointsToLikelyUTIMatch(path, CFSTR("public.audio"));
    }

    (6)获取顺应性列表

       UTTypeCopyDeclaration()是IOS API中的所有UTI函数中最一般(并且最有用)的函数,它返回包含以下键的字典。

        》kUTTypeIdentifierKey:UTI名称,他将被传递给函数(例如.public.mpeg)

        》kUTTypeConformsToKey:类型顺应的任何父项目(例如 public.mpeg顺应public.movie)

        》kUTTypeDescriptionKey:正在考虑的类型(如果存在的话)的现实描述 (例如 “MPEG movie”)

        》kUTTypeTagSpecificationKey:给定UTI的等价OSType(例如MPG和MPEG)、文件扩展名( mpg、mpeg、mpe、m75和m15)和MIME类型(视频/mpeg、视频/mpg、视频/x-mpeg和视频/x-mpg)的字典。

     下面例子主要是返回字典向上通过顺应性树来构建一个数组,表示给定UTI顺序的所有项目.例如public.mpeg类型顺应public.movie public.audiovisual-content public.data public.item 和public.content,代码如下:

    NSDictionary *utiDictionary(NSString *aUTI)
    {
        NSDictionary *dictionary = (__bridge_transfer NSDictionary *)UTTypeCopyDeclaration((__bridge CFStringRef) aUTI);
        return dictionary;
    }
    
    NSArray *uniqueArray(NSArray *anArray)
    {
        NSMutableArray *copiedArray = [NSMutableArray arrayWithArray:anArray];
        for (id object in anArray)
        {
            [copiedArray removeObjectIdenticalTo:object];
            [copiedArray addObject:object];
        }
        
        return copiedArray;
    }
    
    NSArray *conformanceArray(NSString *aUTI)
    {
        NSMutableArray *results = [NSMutableArray arrayWithObject:aUTI];
        NSDictionary *dictionary = utiDictionary(aUTI);
        id conforms = dictionary[(__bridge NSString *)kUTTypeConformsToKey];
        
        // No conformance
        if (!conforms) return results;
        
        // Single conformance
        if ([conforms isKindOfClass:[NSString class]])
        {
            [results addObjectsFromArray:conformanceArray(conforms)];
            return uniqueArray(results);
        }
        
        // Iterate through multiple conformance
        if ([conforms isKindOfClass:[NSArray class]])
        {
            for (NSString *eachUTI in (NSArray *) conforms)
                [results addObjectsFromArray:conformanceArray(eachUTI)];
            return uniqueArray(results);
        }
        
        // Just return the one-item array
        return results;
    }
    
    NSArray *allExtensions(NSString *aUTI)
    {
        NSMutableArray *results = [NSMutableArray array];
        NSArray *conformance = conformanceArray(aUTI);
        for (NSString *eachUTI in conformance)
        {
            NSDictionary *dictionary = utiDictionary(eachUTI);
            NSDictionary *extensions = dictionary[(__bridge NSString *)kUTTypeTagSpecificationKey];
            id fileTypes = extensions[(__bridge NSString *)kUTTagClassFilenameExtension];
            
            if ([fileTypes isKindOfClass:[NSArray class]])
                [results addObjectsFromArray:(NSArray *) fileTypes];
            else if ([fileTypes isKindOfClass:[NSString class]])
                [results addObject:(NSString *) fileTypes];
        }
        
        return uniqueArray(results);
    }
    
    NSArray *allMIMETypes(NSString *aUTI)
    {
        NSMutableArray *results = [NSMutableArray array];
        NSArray *conformance = conformanceArray(aUTI);
        for (NSString *eachUTI in conformance)
        {
            NSDictionary *dictionary = utiDictionary(eachUTI);
            NSDictionary *extensions = dictionary[(__bridge NSString *)kUTTypeTagSpecificationKey];
            id fileTypes = extensions[(__bridge NSString *)kUTTagClassMIMEType];
            
            if ([fileTypes isKindOfClass:[NSArray class]])
                [results addObjectsFromArray:(NSArray *) fileTypes];
            else if ([fileTypes isKindOfClass:[NSString class]])
                [results addObject:(NSString *) fileTypes];
        }
        
        return uniqueArray(results);
    }

     

     

     

    转载于:https://www.cnblogs.com/haibosoft/p/4180587.html

    展开全文
  • win10系统
  • 打开文件 ...用法 要使用此插件,请在 pubspec.yaml 文件中添加作为依赖项。 dependencies : # androidx open_file : ^lastVersion ...//OpenFile.open("/sdcard/example.txt", type: "text/plain", uti: "publ
  • 数字电视安全芯片UTi1203及其在无卡CA中的应用.pdf
  • 密歇根州诺维--(美国商业资讯)--全球领先的温控工业房地产投资信托(REIT)和物流解决方案提供商Lineage Logistics, LLC(简称“Lineage”或“公司”)今天宣布,计划收购总部位于鹿特丹的知名货运代理公司UTI ...

    ~此项收购标志着Lineage进军欧洲货运代理行业,增强了公司通过其全球仓储网络实现高效货物运输的能力~

     

    密歇根州诺维--(美国商业资讯)--全球领先的温控工业房地产投资信托(REIT)和物流解决方案提供商Lineage Logistics, LLC(简称“Lineage”或“公司”)今天宣布,计划收购总部位于鹿特丹的知名货运代理公司UTI Forwarding。此项收购标志着Lineage正式进军欧洲货运代理行业,并且能使Lineage通过其遍布全球的仓储网络来促进货物运输的运营协同,进一步加强Lineage的端到端供应链产品和服务。该交易尚须获得市场竞争监管部门的批准,公司将在获得批准后完成交易。

     

    UTIForwarding于1961年成立,是一家领先货运代理公司,其总部位于具有战略意义的荷兰鹿特丹,并在波兰格但斯克新开设了办事处。该公司专业从事整装集装箱(“FCL”)货物的进出口业务,可处理温控货物和其他集装箱货物。UTI为400多家客户管理往返全球各大港口的集装箱运输。

     

    Lineage国际运营总裁兼网络优化执行副总裁Mike McClendon表示:“我们对收购UTI怀着浓厚的兴趣。双方将一起为共同客户提供一站式解决方案,在集装箱进出口运输中创造更高的效率,我们的仓库也将有助于减少供应链各环节的延迟。UTI拥有一支卓越的管理团队,我们很高兴能与他们合作,向新客户推广双方的产品和服务,并通过技术投资进一步推动业务增长并节约成本。”

     

    UTIForwarding首席执行官Peter de Kramer表示:“在与Lineage进行初步接触时,我们就很清楚双方非常契合。两家公司都倡导严谨务实的公司文化,客户群和服务则极为互补。过去一段时间以来,我们公司经历了大幅增长和发展,比预期时间更早达到了某些里程碑。在我们与Lineage接触之前,Nordian Capital帮助我们理清了公司取得的业绩和进一步扩张的雄心。现在,与Lineage的合并将有助于我们在未来为客户提供更优质的服务,并助力UTI实现目标——成为国际集装箱市场上的顶尖公司。”

     

    来自Nordian Capital的Perry Bos和CasparMutze补充评论道:“在我们过去几年的合作中,UTI急速发展,现在已经为下一步行动做好了准备。Lineage是UTI梦寐以求的合作伙伴,能够帮助UTI实现其远大发展目标。虽然有多家公司表达了收购意向,但UTI管理层从一开始就坚定地认为,Lineage能够提供最佳机会,帮助UTI向客户推广产品和服务。我们为我们公司与UTI一起取得的成就感到自豪,并相信UTI和Lineage必将拥有更美好的未来。”

     

    INGFinancial Services LLC.担任UTI和其前投资方Nordian的财务顾问。Rabobank担任Lineage的财务顾问,NautaDutilh担任Lineage的法律顾问。

     

    关于Lineage Logistics

     

    LineageLogistics是领先的创新型温控工业房地产投资信托(REIT)和物流解决方案提供商。Lineage拥有端对端物流解决方案专长,并综合了全球不动产网络及技术运用,可促进食品安全,提升配送效率,推进可持续发展,减少环境影响并减少供应链浪费。因此,Lineage帮助从财富500强公司到小型家族企业的各种规模客户提高效率并保护其温控供应链的完整性。自2008年以来,Lineage的冷藏容量已实现每年60%的增长,达到21亿立方英尺,使其成为全球规模首屈一指的温控工业REIT。凭借行业领先的创新,公司在《Fast Company》杂志2019全球创新企业年度榜单上荣膺数据科学企业榜首,同时在该杂志对全球数千家公司的评估中综合排名第23位。

     

    关于UTI

     

    UTI (uti.nl/en)专长于全球整装集装箱(FCL)货物进出口业务。除了常规和温控集装箱的运输外,UTI还为400多家客户处理清关和公路运输事务。UTI在鹿特丹和波兰设有办事处,无论客户身处何处,都可7天24小时全天候使用UTI及其合作伙伴的全球网络。

     

    关于Nordian Capital

     

    NordianCapital (nordian.nl)是荷兰一家独立私募股权投资公司,专注于促进并加速所投资公司的增长。自2014年成立以来,Nordian作为关键且负责的投资合作伙伴,为30多家公司做出了贡献。Nordian Capital在战略、融资和并购等领域提供积极主动的支持。Nordian不会取代管理层,而是让企业家做他们最擅长的事情:经营公司。

     

    展开全文
  • 介绍了关于数据库软件开发Oracle.9I.as.Containers.For.J2Ee.Jsp.Tag.Libs.And.Uti的详细说明,提供其它知识的技术资料的下载。
  • One of the UTIs used in the above example was system-defined, but the other was an application-specific UTI. The application-specific UTI will need to be exported so that other applications on the ...

    本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6658492

    File type handling is new with iPhone OS 3.2, and is different than the already-existing custom URL schemes. You can register your application to handle particular document types, and any application that uses a document controller can hand off processing of these documents to your own application.

    文件类型处理是iphone os 3.2新增的,与已经存在的自定义URL方案是不同的。你能注册你的应用程序来处理特定的文件类型并且任何应用程序 使用文档控制器能手动处理这些文档在你的应用程序中。

     

    For example, my application Molecules (for which the source code is available) handles the .pdb and .pdb.gz file types, if received via email or in another supported application.

    例如,我的molecules应用程序能处理 以 pdb , pdb.gz为后缀的文件类型 ,如果收到通过电子邮件或其他支持的应用程序。

    To register support, you will need to have something like the following in your Info.plist:

    注册支持,你需要在info.plist文件中增加像下面一样的内容。

    <key> CFBundleDocumentTypes </ key >
    <array>
         <dict>
             <key> CFBundleTypeIconFiles </ key >
             <array>
                 <string> Document - molecules - 320.png </ string >
                 <string> Document - molecules - 64.png </ string >
             </ array >
             <key> CFBundleTypeName </ key >
             <string> Molecules Structure File </ string >
             <key> CFBundleTypeRole </ key >
             <string> Viewer </ string >
             <key> LSHandlerRank </ key >
             <string> Owner </ string >
             <key> LSItemContentTypes </ key >
             <array>
                 <string> com . sunsetlakesoftware . molecules . pdb </ string >
                 <string> org . gnu . gnu - zip - archive </ string >
             </ array >
         </ dict >
    </ array >

    Two images are provided that will be used as icons for the supported types in Mail and other applications capable of showing documents. The LSItemContentTypes key lets you provide an array of Uniform Type Identifiers (UTIs) that your application can open. For a list of system-defined UTIs, see Apple's Uniform Type Identifiers Reference. Even more detail on UTIs can be found in Apple's Uniform Type Identifiers Overview. Those guides reside in the Mac developer center, because this capability has been ported across from the Mac.

    两个图像将作为支持的邮件和其他应用程序能够显示文件类型的图标。LSItemContentTypes键可让您提供一个可以使您的应用程序打开的统一类型标识符(UTI)数组对于一个系统定义的UTI的列表,请查看苹果的Uniform Type Identifiers Reference(统一类型标识符参考)。UTI更详细信息,可以在苹果公司的Uniform Type Identifiers Overview(统一类型标识符的概述)中找到。这些指南位于Mac开发中心,因为这种能力已经从Mac移植通过。

    One of the UTIs used in the above example was system-defined, but the other was an application-specific UTI. The application-specific UTI will need to be exported so that other applications on the system can be made aware of it. To do this, you would add a section to your Info.plist like the following:

    上面的例子中用到的UTI的一种是系统定义的,还有其他应用程序特定的UTI。应用程序特定的UTI 需要被导出,以使系统上的其他应用程序能知道它。要做到这一点,你需要像下面一样添加一部分内容到你的info.plist文件中。

    <key> UTExportedTypeDeclarations </ key >
    <array>
         <dict>
             <key> UTTypeConformsTo </ key >
             <array>
                 <string> public . plain - text </ string >
                 <string> public . text </ string >
             </ array >
             <key> UTTypeDescription </ key >
             <string> Molecules Structure File </ string >
             <key> UTTypeIdentifier </ key >
             <string> com . sunsetlakesoftware . molecules . pdb </ string >
             <key> UTTypeTagSpecification </ key >
             <dict>
                 <key> public . filename - extension </ key >
                 <string> pdb </ string >
                 <key> public . mime - type </ key >
                 <string> chemical / x - pdb </ string >
             </ dict >
         </ dict >
    </ array >

    This particular example exports the com.sunsetlakesoftware.molecules.pdb UTI with the .pdb file extension, corresponding to the MIME type chemical/x-pdb.

    这个特殊的例子导出com.sunsetlakesoftware.molecules.pdb UTI (以.pdb为文件扩展名,对应的MIME类型为 chemical/x-pdb)

    With this in place, your application will be able to handle documents attached to emails or from other applications on the system. In Mail, you can tap-and-hold to bring up a list of applications that can open a particular attachment.

    在此,您的应用程序将能够处理连接到电子邮件或系统上其他应用程序的文件。在邮箱中,你可以轻按和按住去弹出一个可以打开一个特定附件的应用程序列表。

    When the attachment is opened, your application will be started and you will need to handle the processing of this file in your -application:didFinishLaunchingWithOptions: application delegate method. It appears that files loaded in this manner from Mail are copied into your application's Documents directory under a subdirectory corresponding to what email box they arrived in. You can get the URL for this file within the application delegate method using code like the following:

    打开附件时,您的应用程序将被启动,您将需要在您的应用程序中处理这个文件通过didFinishLaunchingWithOptions:应用程序委托方法。看来,通过这种从相应收到的电子邮件中的文件复制到应用程序的文件目录下的子目录中的加载方式,通过应用程序中的委托方法,类似于下面的代码的方法,您可以得到此文件

    NSURL * url = ( NSURL *)[ launchOptions valueForKey : UIApplicationLaunchOptionsURLKey ];

    Note that this is the same approach we used for handling custom URL schemes. You can separate the file URLs from others by using code like the following:

    请注意,这是我们处理自定义的URL计划使用相同的方法。通过使用类似于下面的代码,你可以区分其开其他的文件URL

    if ([ url isFileURL ])
    {
         // Handle file being passed in
    }
    else
    {
         // Handle custom URL scheme
    }

    转载于:https://www.cnblogs.com/Camier-myNiuer/p/3601765.html

    展开全文
  • iOS UTI

    2017-09-09 17:37:00
    UTI全拼Uniform Type Identifier,直接翻译过来就是统一类型标示符。 这个东西可以实现的功能就是设备之间或者app之间的文件传输。 有兴趣的领个支付宝红包再走, ^_^ 全套相关传送门已经为大家找好,欢迎评论...
  • ~此次收购标志着Lineage进军欧洲货代行业,借此提升其全球供应链服务的效率~ 密歇根州诺威-- (美国商业资讯)--全球首屈一指、最具创新力的温控...UTI Forwarding是一家领先的货代公司,战略性地坐落于荷兰鹿特丹...
  • UTI 唯一类型标识

    2019-09-25 21:36:59
    If your code relies on third-party UTI types that may not be present on the system, you should declare those UTIs as imported types in your bundle. Be sure to add conformance information if ...
  • github最新版srs-docker源码
  • 苹果UTI 统一类型标识符,通过文件后缀打开对应APP
  • 1.同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下一代的MIME类型。UTI是标识资源类型(比如图像和文本)的字符串,他们制定哪些类型的信息将用于公共数据对象,他们不需要...
  • Etoile基金会 维护者:Quentin Mathe ,David Chisnall作者:David Chisnall,Quentin Mathe,Uli Kusterer,Yen-Ju Chen,Eric Wasylishen许可证:修改后的BSD许可证版本:0.6 EtoileFoundation是所有Etoile项目的...
  • 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 '...
  • 之前有整理过关于《根据文件后缀打开APP》的文章 ,请先参考它,然后接下来学习,如何自定UTI。  应用场景:APP 打开本公司自定义格式的文件,特殊的自定义后缀的文件。通过QQ 微信、邮箱等等接受到手机上的特殊...
  • java.uti.List包和com.sun.util.List包区别

    千次阅读 2018-11-12 23:37:03
    java.uti.List包和com.sun.util.List包区别 先来理一下ssm框架:首先请求调用controller层。controller层调用service层。service层调用dao层实现的查询数据库的函数。 xml文件配置查找完数据库里返回的类型可能是...
  • 代码“loadhdf5.m”和“matfile2hdf5.m”分别将数据从 HDF5 文件加载到工作区(与“加载”命令类似)并将 .mat 文件转换为 .hdf5 文件。 代码很简单,因为 (1) 仅加载 HDF5 文件中“/”组下的数据集,以及 (2) 忽略 ...
  • 简述 在打开一些文件时,经常可以看到有在XXXAPP中打开,例如使用照片查看器...首先我们要先了解一下UTI,因为网上可以搜到的资源实在是比较少,怕自己忘记还是先记录一下。 UTI是苹果公司提供的统一类型标识符,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,009
精华内容 2,803
关键字:

uti