这个如何实现?我希望获得该名称,以便我可以在应用程序中显示该名称,当然,每次更改名称时都无需在代码中更改它。在运行时获取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. iPhone产品名称
- 3. 获取正在运行的应用程序的简单名称
- 4. 无法获取正在运行的应用程序的名称
- 5. 获取在前台运行的应用程序的名称:android
- 6. 在安装程序中检索应用程序产品名称
- 7. 使用Scraping获取产品名称
- 8. 在odoo中获取产品名称
- 9. 在Shopify中获取产品名称
- 10. 如何获取后台运行应用程序的名称
- 11. 在运行时获取Windows程序快捷方式的名称?
- 12. 从C#获取正在运行的Java程序的名称(如.NET应用程序的进程名称)
- 13. 如何在运行网站/ Web应用程序时获取项目名称?
- 14. opencart按型号名称获取产品
- 15. 当应用程序未运行时获取推送通知iPhone
- 16. 获取应用程序的名称
- 17. iPhone 4应用程序的产品命名约定?
- 18. 更改产品的名称为应用程序的Xcode 4.5.2
- 19. 如何获取TopActivity名称或获取棒棒糖当前正在运行的应用程序包名称?
- 20. 通过产品名称获取产品永久链接,Woocommerce
- 21. 按产品名称获取woocommerce产品ID
- 22. 无法从Magento产品集合中获取产品名称
- 23. 如何从iPhone应用程序IPA获取应用程序名称与PHP
- 24. 在Cocoa Touch应用程序中获取运营商名称
- 25. 获取应用程序名称
- 26. 正在运行的应用程序名称而不是程序包名称
- 27. 获取正在运行的SAS程序的名称
- 28. 如何通过vbscript获取正在运行的应用程序名称
- 29. 如何在android中获取后台运行应用程序的名称?
- 30. PHP Woocomerce获得产品品牌名称
甜蜜,谢谢! – 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