Cocoa App:发现哪些应用可以处理图像和视频

时间:2015-08-09 11:04:23

标签: macos cocoa

我正在尝试发现哪些应用可以处理图片和视频,我假装在此之后从我的应用中启动该类型的默认应用。

我有这段代码:

    CFArrayRef *array = LSCopyAllRoleHandlersForContentType(kUTTypeAudiovisualContent, kLSRolesEditor);

运行此array = NULL

我期待在该列表上看到Photoshop,预览等,但我得到了它。

注意:这是一个沙盒应用程序,将在App Store上分发。这就是出现这种错误的原因吗?

1 个答案:

答案 0 :(得分:2)

该调用只会返回声称可以处理完全通用和抽象的“视听内容”类型的应用程序。几乎没有应用程序会声称这一点。他们怎么样?什么应用程序可以设想处理视听内容的每个变体?

例如,如果您正在撰写处理图片的应用,那么您肯定只能处理一些特定类型的图片(public.pngpublic.jpegpublic.tiff等。 )。您不能声称完全处理图像(即public.image)。这意味着你声称要以各种可想象的文件格式处理图像,甚至是尚未发明的格式,因为一旦它们被发明,它们的UTI肯定会符合public.image

出于同样的原因,任何应用都无权声称处理public.audiovisual-​content

(顺便说一下,public.image不符合public.audiovisual-​content。所以后者并不包含“图片和视频”。)

您将不得不搜索应用程序实际可能声称要处理的更具体的UTI。我不知道沙盒是否会干扰这项任务。您可以构建应用程序的非沙盒版本以进行测试。

我不确定你的意思是“我假装推出该类型的默认应用程序”。 “假装”启动应用程序意味着什么?