这个如何实现?我希望获得该名称,以便我可以在应用程序中显示该名称,当然,每次更改名称时都无需在代码中更改它。在运行时获取iPhone应用程序的产品名称?
回答
试试这个
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *info = [bundle infoDictionary];
NSString *prodName = [info objectForKey:@"CFBundleDisplayName"];
我有一个问题,当我用InfoPlist.strings本地化我的应用程序的名称,如
CFBundleDisplayName = "My Localized App Name";
如果我使用infoDictionary我无法获得本地化的应用程序名称。
在这种情况下,我使用像下面这样的localizedInfoDirectory。
NSDictionary *locinfo = [bundle localizedInfoDictionary];
您可以用直接的方法,
NSString* appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
这里很好的答案。
我会添加一件事。
而不是使用@“CFBundleDisplayName”,它在将来改变的潜力,这是最好的投在CFBundle.h提供的字符串常量,像这样:
[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey];
因此,面向未来的代码。
这是一个不同的键,可能不是所有情况下的显示名称。令人惊讶的是,字符串文字是[Apple推荐](http://developer.apple.com/library/mac/#qa/qa1544/_index.html)。 – 2012-11-21 20:01:34
真棒回答.. – svmrajesh 2014-04-03 11:22:38
您可以从此字典“信息”中获取所有包的详细信息。打印这本字典,并得到你想要的。
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *info = [bundle infoDictionary];
据苹果,直接使用- objectForInfoDictionaryKey:
的NSBundle
对象上是优选的:
使用这种方法优于其他接入方法,因为它返回一个键的本地值时有一个可用。
下面是斯威夫特的例子:
let appName = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName") as! String
// Or use key "CFBundleDisplayName"
更新斯威夫特3 - 感谢杰夫。
let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as! String
这只是这个非常古老的问题的迅速更新。我需要迅速的答案,这是一种棘手的(通过拆自选)在迅速语法所以这里
let productName = NSBundle.mainBundle().infoDictionary!["CFBundleName"]!
这是我能想出用斯威夫特3最干净的方法:
let productName = Bundle.main.infoDictionary?["CFBundleDisplayName"] as? String
下面的代码会更好。
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *info = [bundle infoDictionary];
self.appName = [info objectForKey:@"CFBundleExecutable"];
这里是Xamarin。@ epatel的iOS版的回答:
var prodName = NSBundle.MainBundle.InfoDictionary.ObjectForKey(new NSString("CFBundleDisplayName")) as NSString;
- 1. iPhone产品名称
- 2. 获取正在运行的应用程序的简单名称
- 3. 无法获取正在运行的应用程序的名称
- 4. 获取在前台运行的应用程序的名称:android
- 5. 在安装程序中检索应用程序产品名称
- 6. 使用Scraping获取产品名称
- 7. 在odoo中获取产品名称
- 8. 如何获取后台运行应用程序的名称
- 9. opencart按型号名称获取产品
- 10. 获取应用程序的名称
- 11. 如何获取TopActivity名称或获取棒棒糖当前正在运行的应用程序包名称?
- 12. 当应用程序未运行时获取推送通知iPhone
- 13. iPhone 4应用程序的产品命名约定?
- 14. 按产品名称获取woocommerce产品ID
- 15. 在Cocoa Touch应用程序中获取运营商名称
- 16. 如何从iPhone应用程序IPA获取应用程序名称与PHP
- 17. PHP Woocomerce获得产品品牌名称
- 18. 在非主程序集的程序集中获取正在运行的应用程序的名称和版本
- 19. 从进程名称获取应用程序名称
- 20. 如何从进程名称获取应用程序名称?
- 21. WCF方法名称在运行应用程序时未显示
- 22. 统一项目 - 失去与“iphone”,恢复连接“iPhone”并运行“产品名称”
- 23. iOS从应用程序名称获取应用程序图标
- 24. iPhone应用程序的显示名称
- 25. iTunes上的iPhone应用程序名称
- 26. 如何获取从桌面应用程序运行的JAR的名称?
- 27. 从命令行获取msi产品名称,版本
- 28. Android zxing:扫描UPC_A代码时如何获取产品名称
- 29. 如何在Heroku上运行Rails时获得应用程序名称?
- 30. 从软件包名称中获取应用程序名称
甜蜜,谢谢! – 2009-08-08 00:20:52
CFBundleDisplayName返回Bundle显示名称。 OP询问产品名称。为此使用CFBundleName。在大多数情况下,两者将是相同的,但如果您设置新的显示名称(对于不适合作为文件名的图标下显示的内容),则可能会有所不同。 – 2011-10-28 10:39:24
Apple在[技术文章]中讨论了这个问题(http://developer.apple.com/library/mac/#qa/qa1544/_index.html)。特别值得注意的是,CFBundleDisplayName没有常量 - 字符串文字是正确的。 – 2012-11-21 20:00:16