這個如何實現?我希望獲得該名稱,以便我可以在應用程序中顯示該名稱,當然,每次更改名稱時都無需在代碼中更改它。在運行時獲取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