Jab*_*air 2 macos file-type objective-c uti
我正在尝试为一对文件类型添加UTI,通过扩展名进行匹配.我想我已经正确设置了 - 至少,文件扩展名 - > UTI映射被识别(我在info.plist中将其声明为导入类型).但是,当我尝试从测试文件中删除UTI时,我会回到动态UTI.这是我用来测试这两种情况的示例代码:
NSString *previewTypeUTI = nil;
NSURL *previewFileURL = [NSURL fileURLWithPath:@"/Users/eblair/Desktop/EWF/thetestfile.myext1"];
[previewFileURL getResourceValue:&previewTypeUTI forKey:NSURLTypeIdentifierKey error:nil];
NSLog(@"%@", previewTypeUTI); // #1
NSString *testUTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[previewFileURL pathExtension], NULL);
NSLog(@"%@", testUTI); // #2
[testUTI release];
Run Code Online (Sandbox Code Playgroud)
NSLog#1打印出"dyn.########",NSLog#2打印出"com.mycompany.filetype1".我希望他们打印同样的东西.是否有一些额外的步骤来使文件 - > UTI映射工作或是否需要赶上启动服务的情况?
仅仅使用extension-> UTI映射不是一个选项,因为我想使用一些利用UTI的API,而这些API似乎使用了file-> UTI映射.
为了完整起见,这里是导入类型的plist条目:
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.disk-image</string>
</array>
<key>UTTypeDescription</key>
<string>File Type 1</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.filetype1</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>myext1</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.disk-image</string>
</array>
<key>UTTypeDescription</key>
<string>File Type 2</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.filetype2</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>myext2</string>
</array>
</dict>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
好吧,已经接近一年,但今天我不得不重新解决这个问题,我想我偶然发现了我做错了什么.看起来你需要包含public.data你所遵循的类型,即使public.disk-image已经符合public.data.所以,UTTypeConformsTo数组应如下所示:
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.disk-image</string>
</array>
Run Code Online (Sandbox Code Playgroud)
进行此更改后,我对file-> UTI和extension-> UTI的上述比较现在产生相同的结果.
| 归档时间: |
|
| 查看次数: |
3738 次 |
| 最近记录: |