Если имя приложения под значком на главном экране является "My Awesome App", как вы получите эту строку в приложении во время выполнения?
Как получить имя запущенного приложения в iOS
Ответ 1
Id try
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];
хотя предположительно вы знаете свое собственное имя приложения и можете просто использовать его...
Ответ 2
Свифт 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")
Подробнее о CFBundleName и CFBundleDisplayName
Ниже приведена документация Apple о базовых ключах ядра.
CFBundleName, "Имя пакета", Сокращенное имя пакета; не предназначен для просмотра пользователем. См. CFBundleName для деталей. (Рекомендуется, локализуется)
CFBundleDisplayName, "Отображаемое имя пакета ", видимое пользователем имя пакета; используется Siri и отображается на главном экране в iOS. Посмотрите CFBundleDisplayName для деталей. (Обязательный, Локализуемый)
Ответ 3
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
Ответ 4
Просто потому, что мне нравится новый способ Xcode 4.5 получить элемент массива.:)
- (NSString*)project_getAppName {
return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
Ответ 5
Для использования Xamarin.iOS:
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];
Вот хороший пост с примерами того, что вы ищете. ОП не принимал ничего, что прискорбно, но ответы полезны.
Ответ 9
Swift 3
let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
Ответ 10
Внимание:
Если вы локализуете название своего приложения на другом языке, вы должны использовать код удара, чтобы получить истинное локализованное отображаемое имя:
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
Не следующее:
Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String