Отримати ідентифікатор пакета програмно в Swift?


Відповіді:


205

Спробуйте це:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Свіфт 3+:

let bundleID = Bundle.main.bundleIdentifier

20
Чи знаєте ви, чому bundleIdentifierце необов’язково? У яких випадках це може бути nil?
Олександр - Поновити Моніку

Іноді мова йде не про те, в яких випадках це може бути нуль, коли він досягне високого рівня розвитку, а про те, в яких випадках це може бути нулем під капотом.
Sethmr

2
@Alexander, коли це не основний комплект або CFBundleIdentifierвін відсутній
ArtFeel

5

Це майже те саме в Swift, за винятком того, що назви класів та методів були скорочені:

let bundleIdentifier = Bundle.main.bundleIdentifier // return type is String?

4

Якщо ви намагаєтесь отримати це програмно, ви можете використовувати нижчий рядок коду:

Завдання-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Свіфт 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Оновлено для останньої швидкої версії. Це буде працювати як для iOS, так і для Mac.

Для отримання додаткової інформації перевірте тут:

Документи Apple: https://developer.apple.com/documentation/foundation/bundle#//apple_ref/occ/instm/NSBundle/bundleIdentifier


привіт, перевіряйте swift3, видаліть свій негативний чек.
Акс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.