获取 Info.plist 的所有 CFBundleTypeExtensions

Posted

技术标签:

【中文标题】获取 Info.plist 的所有 CFBundleTypeExtensions【英文标题】:Get all CFBundleTypeExtensions of an Info.plist 【发布时间】:2010-08-26 12:55:29 【问题描述】:

我想获取我的应用可以打开的所有文件扩展名。我想从我的 Info.plist 中获取它们。现在我有这个,但是有更好的选择吗?

NSMutableArray *types = [NSMutableArray new];
NSArray *documentTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleDocumentTypes"];
for (NSDictionary *dict in documentTypes) 
    for (NSString *extension in [dict objectForKey: @"CFBundleTypeExtensions"])
        [types addObject: extension];

return [types autorelease];

提前致谢。

【问题讨论】:

这可能是最有效的方法,但有什么理由你必须检查你的 Info.plist 吗?您不知道可以打开哪些文件类型吗? 是的。但这是一个很大的列表......也许我应该硬编码它们。 【参考方案1】:

在您项目的 info.plist 中,只需输入一个星号 ('*') 作为 CFBundleTypeExtension 的一项,如下图所示。

【讨论】:

以上是关于获取 Info.plist 的所有 CFBundleTypeExtensions的主要内容,如果未能解决你的问题,请参考以下文章

如何从 info.plist 获取静态框架的版本?或任何其他方式?

获取info.plist的信息的代码

swift3.0怎么获取info.plist文件里的属性值

Info.plist 和 [app name]-Info.plist 有啥区别?

我在 info.plist 中的 NSAppTransportSecurity 设置不适用于所有已定义的域和子域

库 Info.plist 中的 NSLocationWhenInUseUsageDescription