问题
If the application name under the icon on the home screen is "My Awesome App" how do you get that string within the application at runtime?
回答1:
I’d try
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];
although presumably you know your own app’s name and can just use it…
回答2:
Swift 3 & 4
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
Swift 2.2
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")
More about 'CFBundleName' and 'CFBundleDisplayName'
The following is from Apple's documentation on Core Foundation Keys
CFBundleName, “Bundle name”, The short name of the bundle; not intended to be seen by the user. See CFBundleName for details. (Recommended, Localizable)
CFBundleDisplayName, “Bundle display name”, The user-visible name of the bundle; used by Siri and visible on the Home screen in iOS. See CFBundleDisplayName for details. (Required, Localizable)
回答3:
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
回答4:
Just because I love the Xcode 4.5 new way to get an array item. :)
- (NSString*)project_getAppName {
return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
回答5:
For Xamarin.iOS use:
return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();
回答6:
#include <stdlib.h>
// work for iOS and MacOSX and ~23 times faster than get name from bundle
NSString *app = [NSString stringWithUTF8String:getprogname()];
回答7:
Swift 3/4
let appName = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
回答8:
NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];
Here is a good post with examples of what you are looking for. The OP didn't accept anything, which is unfortunate, but the answers are useful.
回答9:
Swift 3
let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
回答10:
Attention:
If you local your app name in different language, you should use the blow code to get the true localized display name:
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
ranther than the blow:
Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
来源:https://stackoverflow.com/questions/8320860/how-to-get-the-name-of-the-running-application-in-ios